Function at 0x10058aa0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x100bc018]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor ebx, ebx
cmp byte [esi + 0x3785], bl
je 0x100595bf
push 0x41
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 0x48
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 0x39
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 0xd
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 6
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 3
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 0x10
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 0x22
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 1
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 0x4a
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 0x4f
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 4
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
push 0xa
mov eax, 0x861110
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
test al, al
jne 0x100595a7
mov eax, dword [0x879340c]
fld dword [esi + 0x102e8]
xor ecx, ecx
fstp dword [ebp - 0x44]
fld dword [esi + 0x102f4]
cmp eax, 0x280
setge cl
fstp dword [ebp - 0x40]
xor edx, edx
push edi
dec ecx
and ecx, eax
mov eax, dword [0x8793410]
cmp eax, 0x1e0
setge dl
mov dword [ebp - 0x3c], ecx
fild dword [ebp - 0x3c]
fstp dword [ebp - 0x48]
dec edx
and edx, eax
mov eax, dword [0xe61e5c]
mov dword [ebp - 0x3c], edx
fild dword [ebp - 0x3c]
fstp dword [ebp - 0x4c]
fild dword [0xe61e5c]
test eax, eax
jns 0x10058c6f
fadd dword [0x100b7030]
fld qword [0x100b7568]
mov ecx, dword [0xe61e58]
fmul st(1), st(0)
sub esp, 0x10
fxch st(1)
fdiv qword [0x100b7560]
fdivr qword [0x100b7558]
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x3c]
fstp dword [esp + 0xc]
fild dword [0xe61e58]
test ecx, ecx
jns 0x10058ca8
fadd dword [0x100b7030]
fmulp st(1)
fdiv qword [0x100b7550]
fdivr qword [0x100b7548]
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x3c]
fstp dword [esp + 8]
fld dword [ebp - 0x40]
fstp dword [esp + 4]
fld dword [ebp - 0x44]
fstp dword [esp]
call fcn.10050ee0
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
test al, al
je 0x10058d17
cmp byte [esi + 0x102e4], bl
jne 0x10058d17
push 1
call edi
mov edx, 0x8000
test dx, ax
je 0x10058d17
fld dword [ebp - 0x48]
mov byte [esi + 0x102e4], 1
call fcn.100ac0e0
fld dword [ebp - 0x4c]
mov word [esi + 0x102f8], ax
call fcn.100ac0e0
mov word [esi + 0x102fa], ax
mov cl, byte [esi + 0x102e4]
cmp cl, bl
je 0x10058de8
movsx eax, word [esi + 0x102f8]
fld dword [ebp - 0x48]
movsx edx, word [esi + 0x102fa]
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov dword [ebp - 0x3c], edx
fsubp st(1)
fadd dword [esi + 0x102e8]
fstp dword [ebp - 0x44]
fld dword [ebp - 0x4c]
fild dword [ebp - 0x3c]
fsubp st(1)
fadd dword [esi + 0x102f4]
fstp dword [ebp - 0x40]
fld dword [0x100b7540]
fcom dword [ebp - 0x44]
fnstsw ax
test ah, 0x41
jne 0x10058d70
fstp dword [ebp - 0x44]
jmp 0x10058d72
fstp st(0)
fld dword [ebp - 0x44]
fcomp qword [0x100b7538]
fnstsw ax
test ah, 0x41
jne 0x10058d8b
fld dword [0x100b7534]
fstp dword [ebp - 0x44]
fld dword [0x100b71f4]
fld dword [ebp - 0x40]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x10058da4
fstp st(0)
fstp dword [ebp - 0x40]
jmp 0x10058dbe
fstp st(1)
fld dword [0x100b7530]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x10058dbc
fstp dword [ebp - 0x40]
jmp 0x10058dbe
fstp st(0)
cmp cl, bl
je 0x10058de8
push 1
call edi
mov ecx, 0x8000
test cx, ax
jne 0x10058de8
fld dword [ebp - 0x44]
mov byte [esi + 0x102e4], bl
fstp dword [esi + 0x102e8]
fld dword [ebp - 0x40]
fstp dword [esi + 0x102f4]
fldz
push ecx
fst dword [esp]
mov edx, 0x637c60
fld1
push 1
push 1
sub esp, 0x20
fst dword [esp + 0x1c]
fstp dword [esp + 0x18]
fst dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [0x100b7ee8]
fstp dword [esp + 0xc]
fld dword [0x100b7254]
fstp dword [esp + 8]
fld dword [0x10127404]
fadd qword [0x100b7450]
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x3c]
fstp dword [esp + 4]
fld dword [ebp - 0x44]
fsub qword [0x100b7138]
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x3c]
fstp dword [esp]
push 0x7a121
call edx
fld dword [ebp - 0x40]
fsub qword [0x100b8280]
add esp, 0x28
mov eax, 0xe0
mov ecx, esi
fstp dword [ebp - 0x48]
fld dword [ebp - 0x44]
fadd qword [0x100b8278]
fst qword [ebp - 0x5c]
fstp dword [ebp - 0x4c]
fld dword [ebp - 0x48]
fstp dword [esp + 4]
fld dword [ebp - 0x4c]
fstp dword [esp]
call fcn.10059c10
mov eax, 0xe0
mov ecx, esi
call fcn.10051040
test al, al
je 0x10058ee9
mov edx, 0x64d3d3d3
cmp byte [esi + 0x3944], bl
je 0x10058ea8
mov edx, 0x96323232
fld dword [ebp - 0x48]
sub esp, 8
fstp dword [esp + 4]
mov eax, 0xe0
fld dword [ebp - 0x4c]
mov ecx, esi
fstp dword [esp]
call fcn.10050fc0
fld dword [ebp - 0x40]
push 0x100b0740
fsub qword [0x100b70f0]
call fcn.100ac0e0
fld qword [ebp - 0x5c]
push eax
call fcn.100ac0e0
push eax
call fcn.10051100
add esp, 0xc
fld dword [ebp - 0x40]
push str.THAY_I_GII_TNH
fld qword [0x100b6f28]
push 0xd2
fsub st(1), st(0)
fxch st(1)
call fcn.100ac0e0
fadd dword [ebp - 0x44]
mov edi, eax
call fcn.100ac0e0
push eax
push 0xff19bdff
mov ebx, 3
mov ecx, edi
call fcn.10050e40
mov eax, dword [0x100d958c]
add esp, 0x10
test eax, eax
jne 0x10058f6c
fld dword [ebp - 0x40]
push str.Tin_T_Zen:
fadd qword [0x100b8270]
push 0xd2
call fcn.100ac0e0
fld dword [ebp - 0x44]
fadd qword [0x100b6f88]
mov edi, eax
call fcn.100ac0e0
push eax
push 0xff19bdff
mov ebx, 1
mov ecx, edi
call fcn.10050e40
add esp, 0x10
jmp 0x10058fcd
cmp eax, 1
jne 0x10058f75
push 0x3a
jmp 0x10058f85
cmp eax, 2
jne 0x10058f7e
push 0x3b
jmp 0x10058f85
cmp eax, 5
jne 0x10058fcd
push 0x3c
mov ecx, 0x100e4cc8
call fcn.1003e200
fld dword [ebp - 0x40]
fadd qword [0x100b8270]
push eax
push str.Yu_Cu__s:
push 0xd2
call fcn.100ac0e0
fld dword [ebp - 0x44]
fadd qword [0x100b6f88]
mov edi, eax
call fcn.100ac0e0
push eax
push 0xff19bdff
mov ebx, 1
mov ecx, edi
call fcn.10050e40
add esp, 0x14
fld dword [ebp - 0x40]
sub esp, 8
fadd qword [0x100b77e8]
mov eax, 0xdf
mov ecx, esi
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x3c]
fstp dword [esp + 4]
fld dword [ebp - 0x44]
fadd qword [0x100b7450]
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x3c]
fstp dword [esp]
call fcn.1004eed0
push 0x32
lea eax, [ebp - 0x38]
push 0
push eax
call sub.MSVCR100.dll_memset
fild dword [0x100d9590]
add esp, 0xc
push 0
lea ecx, [ebp - 0x38]
push ecx
sub esp, 8
mov edx, 0x5c1170
fstp qword [esp]
call edx
fld dword [ebp - 0x40]
fadd qword [0x100b7b98]
add esp, 0x10
lea eax, [ebp - 0x38]
push eax
push 0x100af870
push 0x3c
call fcn.100ac0e0
fld dword [ebp - 0x44]
fadd qword [0x100b6f18]
mov edi, eax
call fcn.100ac0e0
push eax
push 0xff19bdff
mov ebx, 1
mov ecx, edi
call fcn.10050e40
fld dword [ebp - 0x40]
fadd qword [0x100b7300]
add esp, 0xc
mov eax, 0xe1
mov ecx, esi
fstp dword [ebp - 0x54]
fld dword [ebp - 0x44]
fadd qword [0x100b7218]
fst qword [ebp - 0x5c]
fsub qword [0x100b7ab8]
fstp dword [ebp - 0x4c]
fld dword [ebp - 0x54]
fstp dword [esp + 4]
fld dword [ebp - 0x4c]
fstp dword [esp]
call fcn.10059c10
fld dword [ebp - 0x40]
fadd qword [0x100b7978]
call fcn.100ac0e0
fld dword [ebp - 0x44]
fsub qword [0x100b71a0]
mov dword [ebp - 0x50], eax
call fcn.100ac0e0
push 0x14
mov edx, 0x402320
mov ecx, 0x8128adc
mov edi, eax
call edx
mov ecx, dword [ebp - 0x50]
push eax
push 0x100af870
push 0xd2
push edi
push 0xffffffffffffffff
mov ebx, 3
call fcn.10050e40
fld qword [ebp - 0x5c]
add esp, 0xc
fadd qword [0x100b79e0]
mov eax, 0xe2
mov ecx, esi
fstp dword [ebp - 0x48]
fld dword [ebp - 0x54]
fstp dword [esp + 4]
fld dword [ebp - 0x48]
fstp dword [esp]
call fcn.10059c10
fld qword [ebp - 0x5c]
call fcn.100ac0e0
mov ebx, eax
push 0x15
mov eax, 0x402320
mov ecx, 0x8128adc
mov dword [ebp - 0x3c], ebx
call eax
mov ecx, dword [ebp - 0x50]
push eax
push 0x100af870
push 0xd2
push ebx
push 0xffffffffffffffff
mov ebx, 3
call fcn.10050e40
fld dword [ebp - 0x40]
fadd qword [0x100b6f48]
add esp, 0xc
mov eax, 0xe3
mov ecx, esi
fstp dword [ebp - 0x50]
fld dword [ebp - 0x50]
fstp dword [esp + 4]
fld dword [ebp - 0x4c]
fstp dword [esp]
call fcn.10059c10
fld dword [ebp - 0x40]
fadd qword [0x100b7450]
call fcn.100ac0e0
push 0x16
mov edx, 0x402320
mov ecx, 0x8128adc
mov dword [ebp - 0x54], eax
call edx
mov ecx, dword [ebp - 0x54]
push eax
push 0x100af870
push 0xd2
push edi
push 0xffffffffffffffff
call fcn.10050e40
fld dword [ebp - 0x50]
add esp, 0xc
fstp dword [esp + 4]
mov eax, 0xe4
fld dword [ebp - 0x48]
mov ecx, esi
fstp dword [esp]
call fcn.10059c10
push 0x17
mov eax, 0x402320
mov ecx, 0x8128adc
call eax
mov ecx, dword [ebp - 0x3c]
push eax
push 0x100b3b18
push 0xd2
push ecx
mov ecx, dword [ebp - 0x54]
push 0xffffffffffffffff
call fcn.10050e40
mov ebx, 1
add esp, 0x14
cmp dword [0x1014a050], ebx
je 0x1005935a
fld dword [ebp - 0x40]
sub esp, 8
fadd qword [0x100b6fe8]
mov eax, 0xe5
mov ecx, esi
fstp dword [ebp - 0x50]
fld dword [ebp - 0x50]
fstp dword [esp + 4]
fld dword [ebp - 0x4c]
fstp dword [esp]
call fcn.10059c10
fld dword [ebp - 0x40]
fadd qword [0x100b6f18]
call fcn.100ac0e0
push 0x18
mov edx, 0x402320
mov ecx, 0x8128adc
mov dword [ebp - 0x54], eax
call edx
push eax
push 0x100af870
push 0xd2
push edi
mov edi, dword [ebp - 0x54]
push 0xffffffffffffffff
mov ebx, 3
mov ecx, edi
call fcn.10050e40
mov eax, dword [0x1014a050]
add esp, 0x14
cmp eax, 1
je 0x10059355
cmp eax, 2
je 0x100592c8
fld dword [ebp - 0x50]
sub esp, 8
fstp dword [esp + 4]
mov eax, 0xe6
fld dword [ebp - 0x48]
mov ecx, esi
fstp dword [esp]
call fcn.10059c10
push 0x697
mov eax, 0x402320
mov ecx, 0x8128adc
call eax
mov ecx, dword [ebp - 0x3c]
push eax
push 0x100af870
push 0xd2
push ecx
push 0xffffffffffffffff
mov ecx, edi
call fcn.10050e40
mov eax, dword [0x1014a050]
add esp, 0x14
cmp eax, 1
je 0x10059355
cmp eax, 2
je 0x10059355
cmp eax, 3
je 0x10059355
fld dword [ebp - 0x40]
sub esp, 8
fadd qword [0x100b77f0]
mov eax, 0xe7
mov ecx, esi
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x3c]
fstp dword [esp + 4]
fld qword [ebp - 0x5c]
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x3c]
fstp dword [esp]
call fcn.10059c10
push 0xc4e
mov edx, 0x402320
mov ecx, 0x8128adc
call edx
fld dword [ebp - 0x40]
fadd qword [0x100b7640]
push eax
push 0x100af870
push 0xd2
call fcn.100ac0e0
fld dword [ebp - 0x44]
fadd qword [0x100b6f88]
mov edi, eax
call fcn.100ac0e0
push eax
push 0xffffffffffffffff
mov ebx, 3
mov ecx, edi
call fcn.10050e40
add esp, 0x14
mov ebx, 1
fld dword [ebp - 0x40]
sub esp, 8
fadd qword [0x100b6f38]
mov eax, 0xdd
mov ecx, esi
fstp dword [ebp - 0x3c]
fld dword [ebp - 0x3c]
fstp dword [esp + 4]
fld dword [ebp - 0x44]
fstp dword [esp]
call fcn.1004eed0
mov eax, 0xe1
mov ecx, esi
mov byte [esi + 0x3986], bl
mov byte [esi + 0x39c6], bl
mov byte [esi + 0x3a06], bl
mov byte [esi + 0x3a46], bl
mov byte [esi + 0x3a86], bl
mov byte [esi + 0x3ac6], bl
mov byte [esi + 0x3b06], bl
call fcn.10051040
pop edi
test al, al
je 0x100593f2
cmp byte [esi + 0x3984], 0
mov edx, 0x64d3d3d3
je 0x100593d0
mov edx, 0x96323232
fld dword [esi + 0x3974]
sub esp, 8
fstp dword [esp + 4]
mov eax, 0xe1
fld dword [esi + 0x3970]
mov ecx, esi
fstp dword [esp]
call fcn.10050fc0
mov eax, 0xe2
mov ecx, esi
call fcn.10051040
test al, al
je 0x10059437
cmp byte [esi + 0x39c4], 0
mov edx, 0x64d3d3d3
je 0x10059415
mov edx, 0x96323232
fld dword [esi + 0x39b4]
sub esp, 8
fstp dword [esp + 4]
mov eax, 0xe2
fld dword [esi + 0x39b0]
mov ecx, esi
fstp dword [esp]
call fcn.10050fc0
mov eax, 0xe3
mov ecx, esi
call fcn.10051040
test al, al
je 0x1005947c
cmp byte [esi + 0x3a04], 0
mov edx, 0x64d3d3d3
je 0x1005945a
mov edx, 0x96323232
fld dword [esi + 0x39f4]
sub esp, 8
fstp dword [esp + 4]
mov eax, 0xe3
fld dword [esi + 0x39f0]
mov ecx, esi
fstp dword [esp]
call fcn.10050fc0
mov eax, 0xe4
mov ecx, esi
call fcn.10051040
test al, al
je 0x100594c1
cmp byte [esi + 0x3a44], 0
mov edx, 0x64d3d3d3
je 0x1005949f
mov edx, 0x96323232
fld dword [esi + 0x3a34]
sub esp, 8
fstp dword [esp + 4]
mov eax, 0xe4
fld dword [esi + 0x3a30]
mov ecx, esi
fstp dword [esp]
call fcn.10050fc0
mov eax, 0xe5
mov ecx, esi
call fcn.10051040
test al, al
je 0x1005950e
cmp dword [0x1014a050], ebx
je 0x1005950e
cmp byte [esi + 0x3a84], 0
mov edx, 0x64d3d3d3
je 0x100594ec
mov edx, 0x96323232
fld dword [esi + 0x3a74]
sub esp, 8
fstp dword [esp + 4]
mov eax, 0xe5
fld dword [esi + 0x3a70]
mov ecx, esi
fstp dword [esp]
call fcn.10050fc0
mov eax, 0xe6
mov ecx, esi
call fcn.10051040
test al, al
je 0x10059553
cmp byte [esi + 0x3ac4], 0
mov edx, 0x64d3d3d3
je 0x10059531
mov edx, 0x96323232
fld dword [esi + 0x3ab4]
sub esp, 8
fstp dword [esp + 4]
mov eax, 0xe6
fld dword [esi + 0x3ab0]
mov ecx, esi
fstp dword [esp]
call fcn.10050fc0
mov eax, 0xe7
mov ecx, esi
call fcn.10051040
test al, al
je 0x100595bf
cmp byte [esi + 0x3b04], 0
mov edx, 0x64d3d3d3
je 0x10059576
mov edx, 0x96323232
fld dword [esi + 0x3af4]
sub esp, 8
fstp dword [esp + 4]
mov eax, 0xe7
fld dword [esi + 0x3af0]
mov ecx, esi
fstp dword [esp]
call fcn.10050fc0
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ab6d6
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3785], bl
mov byte [0x10127415], bl
mov dword [0xe8cb3c], ebx
mov byte [0x10127431], bl
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.100ab6d6
mov esp, ebp
pop ebp
ret