	.file	"extr_android_input.c_handle_hotplug.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"Device model: (%s).\n"
.LC1:
	.string	"Max number of pads reached.\n"
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC2:
	.string	"Could not look up device name or IDs.\n"
	.section	.rodata.str1.1
.LC3:
	.string	"SHIELD Android TV"
.LC4:
	.string	"Virtual"
	.section	.rodata.str1.8
	.align 8
.LC5:
	.string	"NVIDIA Corporation NVIDIA Controller v01.0"
	.section	.rodata.str1.1
.LC6:
	.string	"Special Device Detected: %s\n"
.LC7:
	.string	"SHIELD Remote"
.LC8:
	.string	"SHIELD Virtual Controller"
.LC9:
	.string	"NVIDIA SHIELD Controller"
.LC10:
	.string	"SHIELD"
.LC11:
	.string	"gpio"
	.section	.rodata.str1.8
	.align 8
.LC12:
	.string	"NVIDIA Corporation NVIDIA Controller v01.01"
	.align 8
.LC13:
	.string	"NVIDIA Corporation NVIDIA Controller v01.02"
	.section	.rodata.str1.1
.LC14:
	.string	"NVIDIA SHIELD Portable"
	.section	.rodata.str1.8
	.align 8
.LC15:
	.string	"NVIDIA Corporation NVIDIA Controller v01.03"
	.section	.rodata.str1.1
.LC16:
	.string	"NVIDIA SHIELD Gamepad"
.LC17:
	.string	"NVIDIA"
.LC18:
	.string	"Android Gamepad"
.LC19:
	.string	"XD"
.LC20:
	.string	"rk29-keypad"
.LC21:
	.string	"Playstation3"
.LC22:
	.string	"XBOX"
.LC23:
	.string	"GPD XD"
.LC24:
	.string	"R800x"
.LC25:
	.string	"R800at"
.LC26:
	.string	"R800i"
.LC27:
	.string	"R800a"
.LC28:
	.string	"R800"
.LC29:
	.string	"Xperia Play"
.LC30:
	.string	"Play"
.LC31:
	.string	"SO-01D"
.LC32:
	.string	"keypad-game-zeus"
.LC33:
	.string	"keypad-zeus"
.LC34:
	.string	"XPERIA Play"
.LC35:
	.string	"ARCHOS GAMEPAD"
.LC36:
	.string	"joy_key"
.LC37:
	.string	"joystick"
.LC38:
	.string	"ARCHOS GAMEPAD Detected: %s\n"
.LC39:
	.string	"ARCHOS GamePad"
.LC40:
	.string	"AFTB"
.LC41:
	.string	"AFTT"
.LC42:
	.string	"AFTS"
.LC43:
	.string	"AFTM"
.LC44:
	.string	"AFTRS"
.LC45:
	.string	"Amazon Fire TV Remote"
.LC46:
	.string	"Nexus Remote"
.LC47:
	.string	"iControlPad-"
	.section	.rodata.str1.8
	.align 8
.LC48:
	.string	"iControlPad HID Joystick profile"
	.align 8
.LC49:
	.string	"TTT THT Arcade console 2P USB Play"
	.section	.rodata.str1.1
.LC50:
	.string	"TTT THT Arcade (User 1)"
.LC51:
	.string	"TTT THT Arcade (User 2)"
.LC52:
	.string	"MOGA"
.LC53:
	.string	"Moga IME"
.LC54:
	.string	"net.obsidianx.android.mogaime"
	.section	.rodata.str1.8
	.align 8
.LC55:
	.string	"com.ccpcreations.android.WiiUseAndroid"
	.section	.rodata.str1.1
.LC56:
	.string	"com.hexad.bluezime"
	.text
	.p2align 4
	.type	handle_hotplug, @function
handle_hotplug:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	mov	r14, rsi
	mov	esi, 256
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	mov	r13d, ecx
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	mov	rbp, rdx
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	mov	rbx, rdi
	sub	rsp, 824
	.cfi_def_cfa_offset 880
	mov	DWORD PTR 12[rsp], r8d
	lea	r12, 288[rsp]
	mov	rdi, r12
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 808[rsp], rax
	xor	eax, eax
	mov	DWORD PTR 24[rsp], 0
	mov	DWORD PTR 28[rsp], 0
	mov	BYTE PTR 544[rsp], 0
	mov	BYTE PTR 288[rsp], 0
	mov	BYTE PTR 32[rsp], 0
	call	frontend_android_get_name@PLT
	mov	rsi, r12
	lea	rdi, .LC0[rip]
	xor	eax, eax
	call	RARCH_LOG@PLT
	mov	eax, DWORD PTR DEFAULT_MAX_PADS[rip]
	cmp	DWORD PTR 0[rbp], eax
	jg	.L101
	lea	r15, 32[rsp]
	lea	rdx, 28[rsp]
	mov	r8d, r13d
	mov	ecx, 256
	lea	rsi, 24[rsp]
	mov	rdi, r15
	call	engine_lookup_name@PLT
	test	eax, eax
	je	.L102
	lea	rsi, .LC3[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	je	.L5
	lea	rsi, .LC4[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L6
	lea	rsi, .LC5[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L6
	lea	rsi, .LC10[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L53
	.p2align 4,,10
	.p2align 3
.L17:
	lea	rsi, .LC17[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L103
	lea	rsi, .LC19[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L104
.L25:
	lea	rsi, .LC24[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L29
	lea	rsi, .LC25[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L29
	lea	rsi, .LC26[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L29
	lea	rsi, .LC27[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L29
	lea	rsi, .LC28[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L29
	lea	rsi, .LC29[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L29
	lea	rsi, .LC30[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L29
	lea	rsi, .LC31[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L29
.L30:
	lea	rsi, .LC35[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	je	.L34
	lea	rsi, .LC36[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L35
	lea	rsi, .LC37[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	je	.L34
.L35:
	mov	rsi, r12
	lea	rdi, .LC38[rip]
	xor	eax, eax
	call	RARCH_LOG@PLT
	mov	eax, DWORD PTR pad_id1[rip]
	test	eax, eax
	js	.L105
	mov	DWORD PTR pad_id2[rip], r13d
	mov	eax, r13d
.L37:
	test	eax, eax
	jg	.L1
	lea	r12, 544[rsp]
	mov	edx, 256
	lea	rsi, .LC39[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	mov	DWORD PTR 0[rbp], 0
	.p2align 4,,10
	.p2align 3
.L13:
	mov	r14, QWORD PTR [r14]
	lea	rsi, .LC54[rip]
	mov	rdi, r14
	call	strstr@PLT
	test	rax, rax
	jne	.L99
	lea	rsi, .LC55[rip]
	mov	rdi, r14
	call	strstr@PLT
	test	rax, rax
	jne	.L99
	lea	rsi, .LC56[rip]
	mov	rdi, r14
	call	strstr@PLT
	test	rax, rax
	jne	.L99
.L49:
	mov	ecx, DWORD PTR 0[rbp]
	test	ecx, ecx
	jns	.L51
	mov	rax, QWORD PTR [rbx]
	mov	DWORD PTR 0[rbp], eax
	mov	ecx, eax
.L51:
	mov	r9d, DWORD PTR 28[rsp]
	mov	r8d, DWORD PTR 24[rsp]
	xor	esi, esi
	mov	rdi, r12
	mov	edx, DWORD PTR android_joypad[rip]
	call	input_autoconfigure_connect@PLT
	mov	rdx, QWORD PTR [rbx]
	mov	rcx, QWORD PTR 8[rbx]
	mov	rsi, r12
	sal	rdx, 4
	add	rdx, rcx
	mov	DWORD PTR 8[rdx], r13d
	movsx	rax, DWORD PTR 0[rbp]
	mov	DWORD PTR 12[rdx], eax
	sal	rax, 4
	mov	edx, 8
	mov	rdi, QWORD PTR [rcx+rax]
	call	strlcpy@PLT
	add	QWORD PTR [rbx], 1
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L5:
	lea	rsi, .LC10[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	je	.L17
	lea	rsi, .LC4[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L18
.L53:
	lea	rsi, .LC11[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L18
	lea	rsi, .LC12[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L18
	lea	rsi, .LC13[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L18
	lea	rsi, .LC15[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	je	.L17
	mov	rsi, r12
	lea	rdi, .LC6[rip]
	xor	eax, eax
	call	RARCH_LOG@PLT
	lea	rsi, .LC15[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	je	.L22
	cmp	QWORD PTR [rbx], 0
	jne	.L22
	mov	DWORD PTR pad_id1[rip], r13d
.L23:
	lea	r12, 544[rsp]
	mov	edx, 256
	lea	rsi, .LC16[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L101:
	lea	rdi, .LC1[rip]
	call	RARCH_ERR@PLT
.L1:
	mov	rax, QWORD PTR 808[rsp]
	xor	rax, QWORD PTR fs:40
	jne	.L106
	add	rsp, 824
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6:
	.cfi_restore_state
	mov	rsi, r12
	lea	rdi, .LC6[rip]
	xor	eax, eax
	call	RARCH_LOG@PLT
	mov	rax, QWORD PTR 8[rbx]
	lea	rsi, .LC7[rip]
	mov	r12, QWORD PTR [rax]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L8
	mov	rdi, r12
	lea	rsi, .LC8[rip]
	lea	r12, 544[rsp]
	call	strstr@PLT
	test	rax, rax
	je	.L9
.L8:
	lea	r12, 544[rsp]
	mov	edx, 256
	mov	rsi, r15
	mov	DWORD PTR pad_id1[rip], -1
	mov	DWORD PTR pad_id2[rip], -1
	mov	rdi, r12
	mov	QWORD PTR [rbx], 0
	mov	DWORD PTR 0[rbp], 0
	call	strlcpy@PLT
.L9:
	lea	rsi, .LC4[rip]
	mov	rdi, r15
	call	strstr@PLT
	mov	edx, 256
	test	rax, rax
	je	.L10
	cmp	QWORD PTR [rbx], 0
	je	.L107
.L10:
	lea	rsi, .LC9[rip]
	mov	rdi, r12
	call	strlcpy@PLT
.L11:
	lea	rsi, .LC5[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	je	.L12
	cmp	QWORD PTR [rbx], 0
	je	.L108
.L12:
	lea	rsi, .LC4[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	je	.L13
	cmp	DWORD PTR pad_id1[rip], -1
	jne	.L1
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L18:
	mov	rsi, r12
	lea	rdi, .LC6[rip]
	xor	eax, eax
	call	RARCH_LOG@PLT
	mov	esi, DWORD PTR pad_id1[rip]
	test	esi, esi
	js	.L109
	mov	DWORD PTR pad_id2[rip], r13d
	mov	eax, r13d
.L21:
	test	eax, eax
	jg	.L1
	lea	r12, 544[rsp]
	mov	edx, 256
	lea	rsi, .LC14[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L99:
	mov	edx, 256
	mov	rsi, r14
	mov	rdi, r12
	call	strlcpy@PLT
	jmp	.L49
	.p2align 4,,10
	.p2align 3
.L102:
	lea	rdi, .LC2[rip]
	call	RARCH_ERR@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L109:
	mov	DWORD PTR pad_id1[rip], r13d
	mov	eax, DWORD PTR pad_id2[rip]
	jmp	.L21
	.p2align 4,,10
	.p2align 3
.L108:
	mov	DWORD PTR pad_id1[rip], r13d
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L104:
	lea	rsi, .LC4[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L26
	lea	rsi, .LC20[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L26
	lea	rsi, .LC21[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L26
	lea	rsi, .LC22[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	je	.L25
	.p2align 4,,10
	.p2align 3
.L26:
	mov	rsi, r12
	lea	rdi, .LC6[rip]
	xor	eax, eax
	call	RARCH_LOG@PLT
	mov	ecx, DWORD PTR pad_id1[rip]
	test	ecx, ecx
	js	.L110
	mov	DWORD PTR pad_id2[rip], r13d
	mov	eax, r13d
.L28:
	test	eax, eax
	jg	.L1
	lea	r12, 544[rsp]
	mov	edx, 256
	lea	rsi, .LC23[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	mov	DWORD PTR 0[rbp], 0
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L22:
	lea	rsi, .LC4[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L1
	lea	rsi, .LC11[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	je	.L23
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L29:
	lea	rsi, .LC32[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L31
	lea	rsi, .LC33[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L31
	lea	rsi, .LC18[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	je	.L30
.L31:
	mov	rsi, r12
	lea	rdi, .LC6[rip]
	xor	eax, eax
	call	RARCH_LOG@PLT
	mov	edx, DWORD PTR pad_id1[rip]
	test	edx, edx
	js	.L111
	mov	DWORD PTR pad_id2[rip], r13d
	mov	eax, r13d
.L33:
	test	eax, eax
	jg	.L1
	lea	r12, 544[rsp]
	mov	edx, 256
	lea	rsi, .LC34[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	mov	DWORD PTR 0[rbp], 0
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L107:
	lea	rsi, .LC8[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	jmp	.L11
	.p2align 4,,10
	.p2align 3
.L103:
	lea	r12, 544[rsp]
	mov	edx, 256
	lea	rsi, .LC18[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L110:
	mov	DWORD PTR pad_id1[rip], r13d
	mov	eax, DWORD PTR pad_id2[rip]
	jmp	.L28
	.p2align 4,,10
	.p2align 3
.L111:
	mov	DWORD PTR pad_id1[rip], r13d
	mov	eax, DWORD PTR pad_id2[rip]
	jmp	.L33
.L34:
	lea	rsi, .LC40[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L38
	lea	rsi, .LC41[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L38
	lea	rsi, .LC42[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L38
	lea	rsi, .LC43[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L38
	lea	rsi, .LC44[rip]
	mov	rdi, r12
	call	strstr@PLT
	test	rax, rax
	jne	.L38
	lea	rsi, .LC45[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L41
	lea	rsi, .LC46[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L41
	lea	rsi, .LC7[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L41
	lea	rsi, .LC47[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L112
	lea	rsi, .LC49[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	je	.L43
	mov	eax, DWORD PTR 0[rbp]
	lea	r12, 544[rsp]
	test	eax, eax
	je	.L113
	sub	eax, 1
	jne	.L13
	mov	edx, 256
	lea	rsi, .LC51[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	jmp	.L13
	.p2align 4,,10
	.p2align 3
.L38:
	mov	rsi, r12
	lea	rdi, .LC6[rip]
	xor	eax, eax
	call	RARCH_LOG@PLT
	lea	rsi, .LC45[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L41
	mov	rax, QWORD PTR 8[rbx]
	lea	rsi, .LC45[rip]
	mov	rdi, QWORD PTR [rax]
	call	strstr@PLT
	test	rax, rax
	je	.L47
.L41:
	mov	QWORD PTR [rbx], 0
	mov	DWORD PTR 0[rbp], 0
.L47:
	lea	r12, 544[rsp]
	mov	edx, 256
	mov	rsi, r15
	mov	rdi, r12
	call	strlcpy@PLT
	jmp	.L13
.L105:
	mov	DWORD PTR pad_id1[rip], r13d
	mov	eax, DWORD PTR pad_id2[rip]
	jmp	.L37
.L106:
	call	__stack_chk_fail@PLT
.L112:
	lea	r12, 544[rsp]
	mov	edx, 256
	lea	rsi, .LC48[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	jmp	.L13
.L113:
	mov	edx, 256
	lea	rsi, .LC50[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	jmp	.L13
.L43:
	lea	rsi, .LC52[rip]
	mov	rdi, r15
	call	strstr@PLT
	test	rax, rax
	jne	.L114
	mov	eax, DWORD PTR 12[rsp]
	cmp	DWORD PTR AINPUT_SOURCE_KEYBOARD[rip], eax
	jne	.L46
	mov	rax, QWORD PTR kbd_num[rip]
	cmp	rax, QWORD PTR MAX_NUM_KEYBOARDS[rip]
	jb	.L115
.L46:
	mov	rdi, r15
	call	string_is_empty@PLT
	test	eax, eax
	je	.L47
	lea	r12, 544[rsp]
	jmp	.L13
.L114:
	lea	r12, 544[rsp]
	mov	edx, 256
	lea	rsi, .LC53[rip]
	mov	rdi, r12
	call	strlcpy@PLT
	jmp	.L13
.L115:
	mov	rdx, QWORD PTR kbd_id[rip]
	mov	DWORD PTR [rdx+rax*4], r13d
	add	rax, 1
	mov	QWORD PTR kbd_num[rip], rax
	jmp	.L1
	.cfi_endproc
.LFE0:
	.size	handle_hotplug, .-handle_hotplug
	.comm	pad_id2,4,4
	.comm	pad_id1,4,4
	.comm	kbd_num,8,8
	.comm	kbd_id,8,8
	.comm	android_joypad,4,4
	.comm	MAX_NUM_KEYBOARDS,8,8
	.comm	DEFAULT_MAX_PADS,4,4
	.comm	AINPUT_SOURCE_KEYBOARD,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_android_input.c_handle_hotplug.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"Device model: (%s).\012\000"
	.align	2
.LC1:
	.ascii	"Max number of pads reached.\012\000"
	.align	2
.LC2:
	.ascii	"Could not look up device name or IDs.\012\000"
	.align	2
.LC3:
	.ascii	"SHIELD Android TV\000"
	.align	2
.LC4:
	.ascii	"Virtual\000"
	.align	2
.LC5:
	.ascii	"NVIDIA Corporation NVIDIA Controller v01.0\000"
	.align	2
.LC6:
	.ascii	"Special Device Detected: %s\012\000"
	.align	2
.LC7:
	.ascii	"SHIELD Remote\000"
	.align	2
.LC8:
	.ascii	"SHIELD Virtual Controller\000"
	.align	2
.LC9:
	.ascii	"NVIDIA SHIELD Controller\000"
	.align	2
.LC10:
	.ascii	"SHIELD\000"
	.align	2
.LC11:
	.ascii	"gpio\000"
	.align	2
.LC12:
	.ascii	"NVIDIA Corporation NVIDIA Controller v01.01\000"
	.align	2
.LC13:
	.ascii	"NVIDIA Corporation NVIDIA Controller v01.02\000"
	.align	2
.LC14:
	.ascii	"NVIDIA SHIELD Portable\000"
	.align	2
.LC15:
	.ascii	"NVIDIA Corporation NVIDIA Controller v01.03\000"
	.align	2
.LC16:
	.ascii	"NVIDIA SHIELD Gamepad\000"
	.align	2
.LC17:
	.ascii	"NVIDIA\000"
	.align	2
.LC18:
	.ascii	"Android Gamepad\000"
	.align	2
.LC19:
	.ascii	"XD\000"
	.align	2
.LC20:
	.ascii	"rk29-keypad\000"
	.align	2
.LC21:
	.ascii	"Playstation3\000"
	.align	2
.LC22:
	.ascii	"XBOX\000"
	.align	2
.LC23:
	.ascii	"GPD XD\000"
	.align	2
.LC24:
	.ascii	"R800x\000"
	.align	2
.LC25:
	.ascii	"R800at\000"
	.align	2
.LC26:
	.ascii	"R800i\000"
	.align	2
.LC27:
	.ascii	"R800a\000"
	.align	2
.LC28:
	.ascii	"R800\000"
	.align	2
.LC29:
	.ascii	"Xperia Play\000"
	.align	2
.LC30:
	.ascii	"Play\000"
	.align	2
.LC31:
	.ascii	"SO-01D\000"
	.align	2
.LC32:
	.ascii	"keypad-game-zeus\000"
	.align	2
.LC33:
	.ascii	"keypad-zeus\000"
	.align	2
.LC34:
	.ascii	"XPERIA Play\000"
	.align	2
.LC35:
	.ascii	"ARCHOS GAMEPAD\000"
	.align	2
.LC36:
	.ascii	"joy_key\000"
	.align	2
.LC37:
	.ascii	"joystick\000"
	.align	2
.LC38:
	.ascii	"ARCHOS GAMEPAD Detected: %s\012\000"
	.align	2
.LC39:
	.ascii	"ARCHOS GamePad\000"
	.align	2
.LC40:
	.ascii	"AFTB\000"
	.align	2
.LC41:
	.ascii	"AFTT\000"
	.align	2
.LC42:
	.ascii	"AFTS\000"
	.align	2
.LC43:
	.ascii	"AFTM\000"
	.align	2
.LC44:
	.ascii	"AFTRS\000"
	.align	2
.LC45:
	.ascii	"Amazon Fire TV Remote\000"
	.align	2
.LC46:
	.ascii	"Nexus Remote\000"
	.align	2
.LC47:
	.ascii	"iControlPad-\000"
	.align	2
.LC48:
	.ascii	"iControlPad HID Joystick profile\000"
	.align	2
.LC49:
	.ascii	"TTT THT Arcade console 2P USB Play\000"
	.align	2
.LC50:
	.ascii	"TTT THT Arcade (User 1)\000"
	.align	2
.LC51:
	.ascii	"TTT THT Arcade (User 2)\000"
	.align	2
.LC52:
	.ascii	"MOGA\000"
	.align	2
.LC53:
	.ascii	"Moga IME\000"
	.align	2
.LC54:
	.ascii	"net.obsidianx.android.mogaime\000"
	.align	2
.LC55:
	.ascii	"com.ccpcreations.android.WiiUseAndroid\000"
	.align	2
.LC56:
	.ascii	"com.hexad.bluezime\000"
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC57:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	handle_hotplug, %function
handle_hotplug:
	@ args = 4, pretend = 0, frame = 784
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	ip, #0
	push	{r4, r5, r6, r7, r8, lr}
	mov	r5, r2
	sub	sp, sp, #792
	mov	r6, r3
	ldr	r3, .L112
	mov	r4, r0
	mov	r7, r1
	add	r0, sp, #276
	mov	r1, #256
	ldr	r3, [r3]
	str	r3, [sp, #788]
	mov	r3,#0
	str	ip, [sp, #12]
	str	ip, [sp, #16]
	strb	ip, [sp, #532]
	strb	ip, [sp, #276]
	strb	ip, [sp, #20]
	bl	frontend_android_get_name
	ldr	r0, .L112+4
	add	r1, sp, #276
	bl	RARCH_LOG
	ldr	r3, .L112+8
	ldr	r2, [r5]
	ldr	r3, [r3]
	cmp	r2, r3
	bgt	.L101
	mov	r3, #256
	str	r6, [sp]
	add	r0, sp, #20
	add	r2, sp, #16
	add	r1, sp, #12
	bl	engine_lookup_name
	cmp	r0, #0
	beq	.L102
	ldr	r1, .L112+12
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	beq	.L5
	ldr	r1, .L112+16
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L6
	ldr	r1, .L112+20
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L6
	ldr	r1, .L112+24
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L53
.L17:
	ldr	r1, .L112+28
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L103
	ldr	r1, .L112+32
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L104
.L25:
	ldr	r1, .L112+36
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L29
	ldr	r1, .L112+40
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L29
	ldr	r1, .L112+44
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L29
	ldr	r1, .L112+48
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L29
	ldr	r1, .L112+52
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L29
	ldr	r1, .L112+56
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L29
	ldr	r1, .L112+60
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L29
	ldr	r1, .L112+64
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L29
.L30:
	ldr	r1, .L112+68
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	beq	.L34
	ldr	r1, .L112+72
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L35
	ldr	r1, .L112+76
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	beq	.L34
.L35:
	ldr	r0, .L112+80
	add	r1, sp, #276
	bl	RARCH_LOG
	ldr	r3, .L112+84
	ldr	r2, [r3]
	cmp	r2, #0
	movge	r3, r6
	ldrlt	r2, .L112+88
	ldrge	r2, .L112+88
	strlt	r6, [r3]
	ldrlt	r3, [r2]
	strge	r6, [r2]
	cmp	r3, #0
	bgt	.L1
	add	r8, sp, #532
	mov	r0, r8
	mov	r2, #256
	ldr	r1, .L112+92
	bl	strlcpy
	mov	r3, #0
	str	r3, [r5]
.L13:
	ldr	r7, [r7]
	ldr	r1, .L112+96
	mov	r0, r7
	bl	strstr
	cmp	r0, #0
	bne	.L99
	mov	r0, r7
	ldr	r1, .L112+100
	bl	strstr
	cmp	r0, #0
	bne	.L99
	mov	r0, r7
	ldr	r1, .L112+104
	bl	strstr
	cmp	r0, #0
	bne	.L99
.L49:
	ldr	r3, [r5]
	ldr	r0, [sp, #16]
	cmp	r3, #0
	ldrlt	r3, [r4]
	ldr	r1, [sp, #12]
	ldr	r2, .L112+108
	strlt	r3, [r5]
	ldr	r2, [r2]
	str	r0, [sp, #4]
	str	r1, [sp]
	mov	r0, r8
	mov	r1, #0
	bl	input_autoconfigure_connect
	ldr	r3, [r4]
	ldr	r0, [r4, #4]
	add	r3, r3, r3, lsl #1
	add	r3, r0, r3, lsl #2
	str	r6, [r3, #4]
	ldr	r2, [r5]
	mov	r1, r8
	add	ip, r2, r2, lsl #1
	str	r2, [r3, #8]
	ldr	r0, [r0, ip, lsl #2]
	mov	r2, #4
	bl	strlcpy
	ldr	r3, [r4]
	add	r3, r3, #1
	str	r3, [r4]
	b	.L1
.L5:
	ldr	r1, .L112+24
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	beq	.L17
	ldr	r1, .L112+16
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L18
.L53:
	ldr	r1, .L112+112
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L18
	ldr	r1, .L112+116
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L18
	ldr	r1, .L112+120
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L18
	ldr	r1, .L112+124
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	beq	.L17
	add	r1, sp, #276
	ldr	r0, .L112+128
	bl	RARCH_LOG
	ldr	r1, .L112+124
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	beq	.L22
	ldr	r3, [r4]
	cmp	r3, #0
	bne	.L22
	ldr	r3, .L112+84
	str	r6, [r3]
.L23:
	add	r8, sp, #532
	mov	r0, r8
	mov	r2, #256
	ldr	r1, .L112+132
	bl	strlcpy
	b	.L13
.L101:
	ldr	r0, .L112+136
	bl	RARCH_ERR
.L1:
	ldr	r3, .L112
	ldr	r2, [r3]
	ldr	r3, [sp, #788]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L105
	add	sp, sp, #792
	@ sp needed
	pop	{r4, r5, r6, r7, r8, pc}
.L6:
	add	r1, sp, #276
	ldr	r0, .L112+128
	bl	RARCH_LOG
	ldr	r3, [r4, #4]
	ldr	r1, .L112+140
	ldr	r8, [r3]
	mov	r0, r8
	bl	strstr
	cmp	r0, #0
	bne	.L8
	mov	r0, r8
	ldr	r1, .L112+144
	bl	strstr
	cmp	r0, #0
	addeq	r8, sp, #532
	beq	.L9
.L8:
	mvn	r2, #0
	mov	r3, #0
	ldr	r0, .L112+84
	ldr	r1, .L112+88
	add	r8, sp, #532
	str	r2, [r0]
	str	r2, [r1]
	mov	r0, r8
	str	r3, [r4]
	mov	r2, #256
	str	r3, [r5]
	add	r1, sp, #20
	bl	strlcpy
.L9:
	ldr	r1, .L112+16
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	mov	r2, #256
	beq	.L10
	ldr	r3, [r4]
	cmp	r3, #0
	beq	.L106
.L10:
	mov	r0, r8
	ldr	r1, .L112+148
	bl	strlcpy
.L11:
	ldr	r1, .L112+20
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	beq	.L12
	ldr	r3, [r4]
	cmp	r3, #0
	beq	.L107
.L12:
	ldr	r1, .L112+16
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	beq	.L13
	ldr	r3, .L112+84
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L1
	b	.L13
.L18:
	ldr	r0, .L112+128
	add	r1, sp, #276
	bl	RARCH_LOG
	ldr	r3, .L112+84
	ldr	r2, [r3]
	cmp	r2, #0
	movge	r3, r6
	ldrlt	r2, .L112+88
	ldrge	r2, .L112+88
	strlt	r6, [r3]
	ldrlt	r3, [r2]
	strge	r6, [r2]
	cmp	r3, #0
	bgt	.L1
	add	r8, sp, #532
	mov	r0, r8
	mov	r2, #256
	ldr	r1, .L112+152
	bl	strlcpy
	b	.L13
.L99:
	mov	r1, r7
	mov	r2, #256
	mov	r0, r8
	bl	strlcpy
	b	.L49
.L102:
	ldr	r0, .L112+156
	bl	RARCH_ERR
	b	.L1
.L107:
	ldr	r3, .L112+84
	str	r6, [r3]
	b	.L13
.L104:
	ldr	r1, .L112+16
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L26
	ldr	r1, .L112+160
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L26
	ldr	r1, .L112+164
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L26
	ldr	r1, .L112+168
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	beq	.L25
.L26:
	ldr	r0, .L112+128
	add	r1, sp, #276
	bl	RARCH_LOG
	ldr	r3, .L112+84
	ldr	r2, [r3]
	cmp	r2, #0
	movge	r3, r6
	ldrlt	r2, .L112+88
	ldrge	r2, .L112+88
	strlt	r6, [r3]
	ldrlt	r3, [r2]
	strge	r6, [r2]
	cmp	r3, #0
	bgt	.L1
	add	r8, sp, #532
	mov	r0, r8
	mov	r2, #256
	ldr	r1, .L112+172
	bl	strlcpy
	mov	r3, #0
	str	r3, [r5]
	b	.L13
.L22:
	ldr	r1, .L112+16
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L1
	ldr	r1, .L112+112
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	beq	.L23
	b	.L1
.L29:
	ldr	r1, .L112+176
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L31
	ldr	r1, .L112+180
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L31
	ldr	r1, .L112+184
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	beq	.L30
.L31:
	ldr	r0, .L112+128
	add	r1, sp, #276
	bl	RARCH_LOG
	ldr	r3, .L112+84
	ldr	r2, [r3]
	cmp	r2, #0
	movge	r3, r6
	ldrlt	r2, .L112+88
	ldrge	r2, .L112+88
	strlt	r6, [r3]
	ldrlt	r3, [r2]
	strge	r6, [r2]
	cmp	r3, #0
	bgt	.L1
	add	r8, sp, #532
	mov	r0, r8
	mov	r2, #256
	ldr	r1, .L112+188
	bl	strlcpy
	mov	r3, #0
	str	r3, [r5]
	b	.L13
.L106:
	mov	r0, r8
	ldr	r1, .L112+144
	bl	strlcpy
	b	.L11
.L103:
	add	r8, sp, #532
	mov	r0, r8
	mov	r2, #256
	ldr	r1, .L112+184
	bl	strlcpy
	b	.L13
.L34:
	ldr	r1, .L112+192
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L38
	ldr	r1, .L112+196
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L38
	ldr	r1, .L112+200
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L38
	ldr	r1, .L112+204
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L38
	ldr	r1, .L112+208
	add	r0, sp, #276
	bl	strstr
	cmp	r0, #0
	bne	.L38
	ldr	r1, .L112+212
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L41
	ldr	r1, .L112+216
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L41
	ldr	r1, .L112+140
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L41
	ldr	r1, .L112+220
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L108
	ldr	r1, .L112+224
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	beq	.L43
	ldr	r3, [r5]
	add	r8, sp, #532
	cmp	r3, #0
	beq	.L109
	cmp	r3, #1
	bne	.L13
	mov	r0, r8
	mov	r2, #256
	ldr	r1, .L112+228
	bl	strlcpy
	b	.L13
.L38:
	add	r1, sp, #276
	ldr	r0, .L112+128
	bl	RARCH_LOG
	ldr	r1, .L112+212
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L41
	ldr	r3, [r4, #4]
	ldr	r1, .L112+212
	ldr	r0, [r3]
	bl	strstr
	cmp	r0, #0
	bne	.L41
.L47:
	add	r8, sp, #532
	mov	r0, r8
	mov	r2, #256
	add	r1, sp, #20
	bl	strlcpy
	b	.L13
.L41:
	mov	r3, #0
	add	r8, sp, #532
	str	r3, [r4]
	mov	r0, r8
	mov	r2, #256
	add	r1, sp, #20
	str	r3, [r5]
	bl	strlcpy
	b	.L13
.L105:
	bl	__stack_chk_fail
.L108:
	add	r8, sp, #532
	mov	r0, r8
	mov	r2, #256
	ldr	r1, .L112+232
	bl	strlcpy
	b	.L13
.L109:
	mov	r0, r8
	mov	r2, #256
	ldr	r1, .L112+236
	bl	strlcpy
	b	.L13
.L43:
	ldr	r1, .L112+240
	add	r0, sp, #20
	bl	strstr
	cmp	r0, #0
	bne	.L110
	ldr	r3, .L112+244
	ldr	r2, [sp, #816]
	ldr	r3, [r3]
	cmp	r3, r2
	bne	.L46
	ldr	r2, .L112+248
	ldr	r1, .L112+252
	ldr	r3, [r2]
	ldr	r1, [r1]
	cmp	r3, r1
	bcc	.L111
.L46:
	add	r0, sp, #20
	bl	string_is_empty
	cmp	r0, #0
	beq	.L47
	add	r8, sp, #532
	b	.L13
.L110:
	add	r8, sp, #532
	mov	r0, r8
	mov	r2, #256
	ldr	r1, .L112+256
	bl	strlcpy
	b	.L13
.L111:
	ldr	r0, .L112+260
	add	r1, r3, #1
	ldr	r0, [r0]
	str	r6, [r0, r3, lsl #2]
	str	r1, [r2]
	b	.L1
.L113:
	.align	2
.L112:
	.word	.LC57
	.word	.LC0
	.word	DEFAULT_MAX_PADS
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC10
	.word	.LC17
	.word	.LC19
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC38
	.word	pad_id1
	.word	pad_id2
	.word	.LC39
	.word	.LC54
	.word	.LC55
	.word	.LC56
	.word	android_joypad
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC15
	.word	.LC6
	.word	.LC16
	.word	.LC1
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC14
	.word	.LC2
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC32
	.word	.LC33
	.word	.LC18
	.word	.LC34
	.word	.LC40
	.word	.LC41
	.word	.LC42
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	.LC49
	.word	.LC51
	.word	.LC48
	.word	.LC50
	.word	.LC52
	.word	AINPUT_SOURCE_KEYBOARD
	.word	kbd_num
	.word	MAX_NUM_KEYBOARDS
	.word	.LC53
	.word	kbd_id
	.size	handle_hotplug, .-handle_hotplug
	.comm	pad_id2,4,4
	.comm	pad_id1,4,4
	.comm	kbd_num,4,4
	.comm	kbd_id,4,4
	.comm	android_joypad,4,4
	.comm	MAX_NUM_KEYBOARDS,4,4
	.comm	DEFAULT_MAX_PADS,4,4
	.comm	AINPUT_SOURCE_KEYBOARD,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
