Function at 0x100470e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10071ddd
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x18
push esi
push edi
mov eax, dword [0x10184080]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x10186a18]
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push eax
mov dword [ebp - 0x1c], eax
lea esi, [eax + eax]
call edi
test ax, ax
jns 0x10047148
cmp byte [esi + 0x10187e88], 0
jne 0x10047148
mov word [esi + 0x10187e88], 1
jmp 0x1004719c
cmp byte [esi + 0x10187e88], 1
jne 0x10047164
push dword [ebp - 0x1c]
call edi
test ax, ax
js 0x10047164
mov word [esi + 0x10187e88], 0x100
mov eax, dword [0x10188194]
lea eax, [eax + eax*2]
mov edx, dword [eax*4 + 0x100aa6a4]
call fcn.100311f0
test al, al
je 0x10047336
mov eax, dword [0x10188194]
lea eax, [eax + eax*2]
mov edx, dword [eax*4 + 0x100aa6a8]
call fcn.1002a670
test al, al
je 0x10047336
call fcn.10042710
test al, al
jne 0x10047212
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x14]
mov dword [ebp - 0x14], 0
mov ecx, eax
call fcn.1003fc90
push dword [ebp - 0x14]
mov edx, str.cellphone_talk
call fcn.100427a0
add esp, 4
test al, al
jne 0x10047212
push dword [ebp - 0x14]
mov edx, str.cellphone_text
call fcn.100427a0
add esp, 4
test al, al
jne 0x10047212
push dword [ebp - 0x14]
mov edx, str.cell_text_to_ear
call fcn.100427a0
add esp, 4
test al, al
jne 0x10047212
push dword [ebp - 0x14]
mov edx, str.cellphone_in
call fcn.100427a0
add esp, 4
test al, al
je 0x10047242
cmp dword [0x10188210], 0
jne 0x10047242
push ecx
push 0x2ee0
mov edx, str.Cant_enable_gLibertys_Legacys_while_using_the_cellphone_to_avoid_issues
call fcn.1002a300
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.1002c2b0
test al, al
je 0x100472ba
cmp dword [0x10188240], 0
setne cl
call fcn.10030d20
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x14]
mov ecx, eax
call fcn.1003fc90
push dword [ebp - 0x14]
lea ecx, [ebp - 0x18]
call fcn.100289b0
add esp, 4
cmp dword [ebp - 0x18], 0
jne 0x100472ba
mov dword [ebp - 0x18], 0
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x18]
mov ecx, eax
call fcn.1003fc90
push dword [ebp - 0x18]
call fcn.100269f0
add esp, 4
cmp dword [0x10188240], 0
jne 0x100472f9
cmp dword [0x10188210], 0
jne 0x100472e7
mov ecx, str.spcellphone
call fcn.1002bd30
mov ecx, str.mpcellphone
call fcn.1002bd30
mov byte [0x1018822d], 0
mov eax, dword [0x10186a00]
mov ecx, dword [0x101881a4]
mov dword [0x10188240], eax
jmp 0x10047331
cmp dword [0x10188210], 0
mov dword [0x10188240], 0
jne 0x1004732b
call fcn.1002bfb0
mov ecx, str.mpcellphone
test al, al
jne 0x1004731f
mov ecx, str.spcellphone
call fcn.10041480
mov byte [0x1018822d], 1
mov ecx, dword [0x101881a0]
call fcn.1002a710
cmp dword [0x10188240], 0
je 0x10047b86
call fcn.1002c2b0
test al, al
je 0x10047356
call fcn.1002b250
call fcn.10030dc0
call fcn.100460f0
cmp byte [0x10186505], 0
je 0x100473de
call fcn.1002c2b0
test al, al
jne 0x10047376
cmp dword [0x10188210], 0
jne 0x100473de
movzx eax, byte [0x10188171]
mov edx, str.PAD_DPAD_UPDOWN
push eax
mov ecx, str.UP_DOWN
call fcn.10047ba0
movzx eax, byte [0x10188171]
add esp, 4
mov edx, str.INPUT_F_CANCEL
mov ecx, str.BACK
push eax
call fcn.10047ba0
movzx eax, byte [0x10188171]
add esp, 4
mov edx, str.INPUT_F_ACCEPT
mov ecx, str.CONFIRM
push eax
call fcn.10047ba0
movzx eax, byte [0x10188171]
add esp, 4
mov edx, str.PAD_DPAD_LEFTRIGHT
mov ecx, str.LEFT_RIGHT
push eax
call fcn.10047ba0
add esp, 4
push 0xa2
call edi
test ax, ax
jns 0x100474a1
mov byte [0x10187fcd], 0
call fcn.1002c2b0
test al, al
mov edx, str.sFast_navigation:_gD_Pads____Quick_find:_gLB
mov ecx, str.sFast_navigation:_gARROWSs____Set_hotkey:_gENTER
cmovne ecx, edx
mov dword [0x101869f8], ecx
call fcn.100462e0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x18]
mov ecx, eax
call fcn.1003fc90
push dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
call fcn.100289b0
add esp, 4
cmp dword [ebp - 0x14], 0
jne 0x10047474
mov dword [ebp - 0x1c], 0
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x1c]
mov ecx, eax
call fcn.1003fc90
push dword [ebp - 0x1c]
call fcn.100269f0
add esp, 4
push 0xd
call edi
test ax, ax
mov al, byte [0x10187ea2]
jns 0x10047759
test al, al
jne 0x10047759
mov word [0x10187ea2], 1
call fcn.10046a80
jmp 0x1004776f
mov edx, 6
mov byte [0x10187fcd], 1
call fcn.100311f0
test al, al
jne 0x100473f5
cmp byte [0x10186504], al
je 0x100474c7
call fcn.100462e0
mov ecx, dword [str.___r_b]
mov edx, 8
push 0
push dword [0x101864f8]
push dword [0x101864fc]
call fcn.100310c0
add esp, 0xc
test al, al
je 0x10047542
mov ecx, dword [0x10188198]
mov byte [0x101869fc], 0
call fcn.1002a710
mov ecx, dword [0x10186a08]
cmp ecx, 1
jne 0x10047526
mov eax, dword [0x10188244]
mov dword [0x10186a08], eax
mov dword [0x10186a14], eax
cmp eax, 0xa
jge 0x10047521
mov eax, ecx
jmp 0x1004753d
add eax, 0xfffffff7
jmp 0x1004753d
mov eax, dword [0x10186a04]
dec ecx
dec eax
mov dword [0x10186a08], ecx
cmp ecx, eax
jne 0x10047542
dec dword [0x10186a14]
mov dword [0x10186a04], eax
mov ecx, dword [0x10186a9c]
mov edx, 9
push 0
push dword [0x101864f8]
push dword [0x101864fc]
call fcn.100310c0
add esp, 0xc
test al, al
je 0x100475c3
mov ecx, dword [0x10188198]
mov byte [0x101869fc], 1
call fcn.1002a710
mov ecx, dword [0x10186a08]
cmp ecx, dword [0x10188244]
jne 0x100475a7
mov dword [0x10186a08], 1
mov dword [0x10186a04], 1
mov dword [0x10186a14], 0xa
jmp 0x100475c3
mov eax, dword [0x10186a14]
inc ecx
inc eax
mov dword [0x10186a08], ecx
cmp ecx, eax
jne 0x100475c3
inc dword [0x10186a04]
mov dword [0x10186a14], eax
mov eax, dword [0x10186aa8]
push eax
mov dword [ebp - 0x1c], eax
lea esi, [eax + eax]
call edi
test ax, ax
jns 0x100475ea
cmp byte [esi + 0x10187e88], 0
jne 0x100475ea
mov word [esi + 0x10187e88], 1
jmp 0x10047614
cmp byte [esi + 0x10187e88], 1
jne 0x10047606
push dword [ebp - 0x1c]
call edi
test ax, ax
js 0x10047606
mov word [esi + 0x10187e88], 0x100
mov edx, 0x10
call fcn.1002a670
test al, al
je 0x10047626
mov ecx, dword [0x1018819c]
mov byte [0x1018823d], 1
call fcn.1002a710
mov ecx, dword [0x10186aa0]
mov edx, 0xa
push 0x28
push 0x19
push 0x96
call fcn.100310c0
add esp, 0xc
test al, al
je 0x10047658
mov ecx, dword [0x10188198]
call fcn.1002a710
mov byte [0x1018822c], 1
mov ecx, dword [0x10186aa4]
mov edx, 0xb
push 0x28
push 0x19
push 0x96
call fcn.100310c0
add esp, 0xc
test al, al
je 0x1004768a
mov ecx, dword [0x10188198]
call fcn.1002a710
mov byte [0x1018822e], 1
mov eax, dword [0x10186aac]
push eax
mov dword [ebp - 0x1c], eax
lea esi, [eax + eax]
call edi
test ax, ax
jns 0x100476b1
cmp byte [esi + 0x10187e88], 0
jne 0x100476b1
mov word [esi + 0x10187e88], 1
jmp 0x100476df
cmp byte [esi + 0x10187e88], 1
jne 0x100476cd
push dword [ebp - 0x1c]
call edi
test ax, ax
js 0x100476cd
mov word [esi + 0x10187e88], 0x100
mov edx, 0x11
call fcn.1002a670
test al, al
je 0x10047b86
call fcn.10046990
mov ecx, dword [0x101881a0]
call fcn.1002a710
cmp dword [0x10188240], 0
jne 0x10047b86
call fcn.1002c2b0
test al, al
je 0x1004770c
mov cl, 1
call fcn.10030d20
cmp byte [0x1018822d], 0
jne 0x10047b86
cmp dword [0x10188210], 0
jne 0x10047b86
call fcn.1002bfb0
mov ecx, str.mpcellphone
test al, al
jne 0x10047739
mov ecx, str.spcellphone
call fcn.10041480
mov byte [0x1018822d], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp al, 1
jne 0x1004776f
push 0xd
call edi
test ax, ax
js 0x1004776f
mov word [0x10187ea2], 0x100
mov eax, dword [str.___r_b]
push eax
mov dword [ebp - 0x18], eax
lea esi, [eax + eax]
call edi
test ax, ax
jns 0x10047796
cmp byte [esi + 0x10187e88], 0
jne 0x10047796
mov word [esi + 0x10187e88], 1
jmp 0x100477c0
cmp byte [esi + 0x10187e88], 1
jne 0x100477b2
push dword [ebp - 0x18]
call edi
test ax, ax
js 0x100477b2
mov word [esi + 0x10187e88], 0x100
mov edx, 8
call fcn.1002a670
test al, al
je 0x100477f7
mov ecx, dword [0x10188198]
mov byte [0x101869fc], 1
call fcn.1002a710
mov dword [0x10186a04], 1
mov dword [0x10186a14], 0xa
mov dword [0x10186a08], 1
mov byte [0x1018823d], 0
mov eax, dword [0x10186a9c]
push eax
mov dword [ebp - 0x18], eax
lea esi, [eax + eax]
call edi
test ax, ax
jns 0x1004781e
cmp byte [esi + 0x10187e88], 0
jne 0x1004781e
mov word [esi + 0x10187e88], 1
jmp 0x10047848
cmp byte [esi + 0x10187e88], 1
jne 0x1004783a
push dword [ebp - 0x18]
call edi
test ax, ax
js 0x1004783a
mov word [esi + 0x10187e88], 0x100
mov edx, 9
call fcn.1002a670
test al, al
je 0x1004787c
mov ecx, dword [0x10188198]
mov byte [0x101869fc], 0
call fcn.1002a710
mov eax, dword [0x10188244]
mov dword [0x10186a14], eax
lea ecx, [eax - 9]
cmp eax, 0xa
jge 0x10047871
mov ecx, 1
mov dword [0x10186a04], ecx
mov dword [0x10186a08], eax
push 0x46
call edi
test ax, ax
mov al, byte [0x10187f14]
jns 0x10047899
test al, al
jne 0x10047899
mov word [0x10187f14], 1
jmp 0x100478c1
cmp al, 1
jne 0x100478af
push 0x46
call edi
test ax, ax
js 0x100478af
mov word [0x10187f14], 0x100
mov edx, 4
call fcn.1002a670
test al, al
je 0x10047a35
mov eax, dword [0x10188374]
cmp eax, dword [0x10188378]
jne 0x100478f5
push ecx
push 0x1b58
mov edx, str.A_trainer_scan_is_required_for_this_feature.__t_t_t_t_t_tGo_to_bMiscellaneous_Search_menu_options
call fcn.1002a300
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, str.Menu_option_name
call fcn.1002f850
mov dword [str.null], eax
cmp eax, 0x1007ad5c
je 0x10047a35
mov edx, dword [0x10188378]
xor esi, esi
mov ecx, dword [0x10188374]
mov eax, edx
sub eax, ecx
sar eax, 5
test eax, eax
jle 0x10047a35
nop dword [eax]
mov eax, esi
shl eax, 5
mov dword [ebp - 0x20], eax
add eax, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [eax + 0x14]
cmp eax, dword [0x10188240]
jne 0x10047a25
mov eax, dword [ebp - 0x18]
sub esp, 0x18
mov edx, esp
mov dword [ebp - 0x24], esp
xorps xmm0, xmm0
mov eax, dword [eax + 0x1c]
mov ecx, eax
mov dword [ebp - 0x14], eax
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
lea eax, [ecx + 1]
mov dword [edx + 0x14], 0
mov dword [ebp - 0x18], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10047980
sub ecx, dword [ebp - 0x18]
push ecx
push dword [ebp - 0x14]
mov ecx, edx
call fcn.1002de80
mov dword [ebp - 4], 0
sub esp, 0x18
mov ecx, dword [str.null]
mov edx, esp
xorps xmm0, xmm0
movups xmmword [edx], xmm0
lea eax, [ecx + 1]
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100479c1
sub ecx, dword [ebp - 0x18]
push ecx
push dword [0x10184b2c]
mov ecx, edx
call fcn.1002de80
mov dword [ebp - 4], 0xffffffff
call fcn.100312e0
mov ecx, dword [0x10188374]
add esp, 0x30
test al, al
je 0x10047a1f
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + ecx + 8]
mov dword [0x10186a08], eax
mov eax, dword [edx + ecx + 0xc]
mov dword [0x10186a04], eax
mov eax, dword [edx + ecx + 0x10]
mov edx, dword [0x10188378]
mov esi, edx
sub esi, ecx
mov dword [0x10186a14], eax
sar esi, 5
jmp 0x10047a25
mov edx, dword [0x10188378]
mov eax, edx
inc esi
sub eax, ecx
sar eax, 5
cmp esi, eax
jl 0x10047930
mov eax, dword [0x10186aa0]
push eax
mov dword [ebp - 0x20], eax
lea esi, [eax + eax]
call edi
test ax, ax
jns 0x10047a5c
cmp byte [esi + 0x10187e88], 0
jne 0x10047a5c
mov word [esi + 0x10187e88], 1
jmp 0x10047a86
cmp byte [esi + 0x10187e88], 1
jne 0x10047a78
push dword [ebp - 0x20]
call edi
test ax, ax
js 0x10047a78
mov word [esi + 0x10187e88], 0x100
mov edx, 0xa
call fcn.1002a670
test al, al
je 0x10047ade
mov ecx, dword [0x10188198]
mov byte [0x101869fc], 1
call fcn.1002a710
mov eax, dword [0x10186a08]
cmp eax, 0xa
jle 0x10047ab9
sub eax, 0xa
mov dword [0x10186a08], eax
mov dword [0x10186a04], eax
add eax, 9
mov dword [0x10186a14], eax
jmp 0x10047ade
mov dword [0x10186a04], 1
mov dword [0x10186a14], 0xa
mov dword [0x10186a08], 1
mov byte [0x1018823d], 0
mov eax, dword [0x10186aa4]
push eax
mov dword [ebp - 0x20], eax
lea esi, [eax + eax]
call edi
test ax, ax
jns 0x10047b05
cmp byte [esi + 0x10187e88], 0
jne 0x10047b05
mov word [esi + 0x10187e88], 1
jmp 0x10047b2f
cmp byte [esi + 0x10187e88], 1
jne 0x10047b21
push dword [ebp - 0x20]
call edi
test ax, ax
js 0x10047b21
mov word [esi + 0x10187e88], 0x100
mov edx, 0xb
call fcn.1002a670
test al, al
je 0x10047b86
mov ecx, dword [0x10188198]
mov byte [0x101869fc], 0
call fcn.1002a710
mov edx, dword [0x10188244]
mov ecx, dword [0x10186a08]
lea eax, [edx - 0xa]
cmp ecx, eax
jge 0x10047b68
add ecx, 0xa
mov dword [0x10186a08], ecx
mov dword [0x10186a14], ecx
lea eax, [ecx - 9]
jmp 0x10047b81
mov dword [0x10186a14], edx
lea eax, [edx - 9]
cmp edx, 0xa
jge 0x10047b7b
mov eax, 1
mov dword [0x10186a08], edx
mov dword [0x10186a04], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret