Function at 0x10038c79
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x1005a4f4
call fcn.10058c78
sub esp, 0x108
cmp byte [ebp + 0x18], 0
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x28], ebx
je 0x10038d78
cmp byte [ebp + 0x20], 0
je 0x10038cb2
mov eax, dword [ebp + 0x10]
and dword [eax], 0
jmp 0x100394c4
mov dword [ebp - 0x20], 0x4c8
cmp dword [ebp - 0x20], 0x63e
jle 0x10038d2a
xor esi, esi
mov dword [ebp + 0x18], esi
xor edi, edi
mov eax, esi
xor ebx, ebx
cdq
idiv edi
mov esi, edx
mov ecx, ebx
mov eax, esi
shl eax, cl
lea ecx, [ebp - 0xe4]
cdq
push edx
push eax
call fcn.10001335
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038cf0
mov eax, dword [eax]
push eax
call fcn.100420be
pop ecx
push 0
push 1
lea ecx, [ebp - 0xe4]
call fcn.100015c8
inc ebx
cmp ebx, 0x2bff
jl 0x10038cd2
mov esi, dword [ebp + 0x18]
inc edi
cmp edi, 0x569a
jl 0x10038cc9
inc esi
mov dword [ebp + 0x18], esi
cmp esi, 0x2f1c
jl 0x10038cc7
mov ebx, dword [ebp - 0x28]
cmp dword [ebp - 0x20], 0x174
jge 0x10038d3e
push str.rrmuu_eqsbls_yzxgbkf_feqvk_embqb_wdrice_okyzscs_imv_ogmbazh_lnowe
call fcn.100420be
pop ecx
mov esi, dword [ebp + 0x24]
lea ecx, [ebp - 0xfc]
or dword [ebp - 4], 0xffffffff
push dword [ebp + 0x1c]
imul edx, dword [esi], 0x18
add edx, dword [ebx]
call fcn.100373c3
pop ecx
imul ecx, dword [esi], 0x18
push eax
add ecx, dword [ebx]
call fcn.1000147d
push 0
lea ecx, [ebp - 0xfc]
push 1
call fcn.10001734
jmp 0x100394c4
cmp byte [ebp + 8], 0
je 0x100394bc
push 0x4b
mov dword [ebp - 0x28], 0xa6847dfa
mov dl, 1
push ecx
call fcn.1003a9d3
pop ecx
pop ecx
mov byte [ebp + 0x1b], 0
lea edx, [ebp + 0x1b]
xor cl, cl
call fcn.10037457
push dword [ebp + 0xc]
lea ecx, [ebp - 0xb8]
call fcn.10001442
push 2
pop ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x20], 0x5f76
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
jmp 0x10038ddc
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x30], 0x38a1f949
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x10038dce
mov dword [ebp - 0x18], 0
jmp 0x10038df9
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x50], 0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10038deb
mov dword [ebp - 0x14], 0x43e2
cmp dword [ebp - 0x14], 0x475d
jle 0x10038e38
xor esi, esi
xor edi, edi
mov ecx, edi
mov eax, esi
shl eax, cl
mov ecx, 0x10074f78
cdq
push edx
push eax
call fcn.10009792
inc edi
cmp edi, 0x4872
jl 0x10038e13
inc esi
cmp esi, 0x1280
jl 0x10038e11
push 0x5bca
lea eax, [ebp - 0x33]
mov byte [ebp - 0x33], 0
push 0x4212
push eax
mov edx, 0x23c0
xor cl, cl
call fcn.10037494
add esp, 0xc
mov byte [ebp - 4], 3
cmp dword [ebp - 0x14], 0x427a
jge 0x10038e75
mov edx, str.dtmmwcae_nokyk_hgfv_wxrskkf_wfgdmsbi_rtfqbk_dcpuapy_ryhjfgp_qmjxyfu_hgqlfktv_hibx
mov ecx, 0x10074f78
call fcn.1000cd04
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x50]
xor edx, edx
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
cmp ecx, eax
mov eax, dword [ebp - 0x44]
setl dl
xor ebx, ebx
cmp edx, 5
setge bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0x30]
setle cl
xor edx, edx
cmp ecx, eax
setg dl
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x14], ebx
je 0x10038ef6
cmp dword [ebp - 0x30], ebx
je 0x10038ef6
xor ecx, ecx
inc ecx
jmp 0x10038ef8
mov ecx, ebx
mov eax, dword [ebp - 0x30]
sub ecx, eax
inc ecx
jne 0x10038f03
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
xor edx, edx
test eax, eax
mov eax, dword [ebp - 0x4c]
sets dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setle cl
xor edx, edx
imul ecx, ecx, 0xfff8
add ecx, eax
mov eax, dword [ebp - 0x30]
cmp eax, ecx
push ecx
push dword [ebp + 0x14]
setle dl
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x4c], edx
call fcn.1003b7d7
mov dword [ebp - 0x3c], eax
cmp eax, 0xffffffff
je 0x1003933b
mov dword [ebp - 0x28], 0x639f
cmp dword [ebp - 0x28], 0x64e9
jle 0x10038ff6
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov ecx, esi
mov dword [ebp - 0x20], edi
mov esi, edi
mov eax, ebx
shl esi, cl
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], esi
mov ecx, eax
mov dword [ebp - 0x40], esi
mov edi, ebx
shl esi, cl
mov eax, esi
lea ecx, [ebp - 0x114]
and eax, edi
cdq
push edx
push eax
call fcn.10001335
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038f9e
mov eax, dword [eax]
push eax
call fcn.100420be
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x114]
call fcn.100015c8
inc edi
cmp edi, 0x2034
jl 0x10038f82
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x7586
jl 0x10038f79
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x5369
jl 0x10038f68
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x7859
jl 0x10038f63
push ebx
call dword [sym.imp.USER32.dll_CharUpperW]
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x24], 0xffffffff
xor eax, eax
inc eax
mov dword [ebp - 0x14], 0x6e3e45bb
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
push 2
call fcn.1000995a
mov byte [ebp - 4], 5
mov eax, 0x8886a6c6
mov dword [ebp - 0x20], 0x1b0cadfb
xor dl, dl
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0xcc]
push eax
push ecx
push ecx
push 0x4f0b
push ecx
push ecx
push 0x50d5
lea ecx, [ebp - 0x5c]
call fcn.10037361
mov eax, dword [ebp - 0x1c]
add esp, 0x1c
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
je 0x100390b2
cmp dword [ebp - 0x1c], 1
jge 0x1003908c
cmp dword [ebp - 0x14], ebx
jne 0x1003908c
cmp dword [ebp - 0x1c], ebx
jne 0x1003908c
mov eax, ebx
jmp 0x1003908f
xor eax, eax
inc eax
cmp eax, dword [ebp - 0x14]
jg 0x1003909d
cmp dword [ebp - 0x14], ebx
jne 0x1003909d
mov eax, ebx
jmp 0x100390a0
xor eax, eax
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x64], eax
test eax, eax
je 0x100390b2
xor ecx, ecx
inc ecx
jmp 0x100390b4
mov ecx, ebx
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jge 0x100390d1
cmp dword [ebp - 0x88], ebx
je 0x100390d1
xor ecx, ecx
inc ecx
jmp 0x100390d3
mov ecx, ebx
mov eax, dword [ebp - 0x90]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x14]
sete dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x1c]
cmp eax, edx
setl cl
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x20], ebx
jmp 0x100392f7
mov dword [ebp - 0x18], 0x26cdee94
mov dword [ebp - 0x14], 0x78317d23
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 1
jg 0x100392f4
mov dword [ebp - 0x2c], 7
lea ecx, [ebp - 0xa0]
push 2
call fcn.1000995a
mov byte [ebp - 4], 6
mov dword [ebp - 0x14], ebx
jmp 0x10039148
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], 0xc493a780
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10039135
mov dword [ebp - 0x18], 0x731e7bf5
cmp dword [ebp - 0x18], ebx
je 0x1003916d
push ecx
push ecx
lea eax, [ebp - 0x24]
push eax
call fcn.10037465
add esp, 0xc
jmp 0x10039270
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x2c], 0xc458af32
mov dword [ebp - 0x24], 3
cmp dword [ebp - 0x24], ebx
jl 0x10039270
mov dword [ebp - 0x2c], 0x42c8
mov dword [ebp - 0x2c], 0x78c76445
mov dword [ebp - 0x18], ebx
jmp 0x10039201
mov dword [ebp - 0x14], 0xd9de360a
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x6c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x5c]
imul edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x14]
dec eax
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, edx
mov eax, dword [ebp - 0x18]
setge cl
sub ecx, 0xb826fbc
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
sub ecx, dword [ebp + eax*4 - 0x90]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x2c], ecx
call fcn.10037a97
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jle 0x1003919e
mov dword [ebp - 0x14], 0x19
jmp 0x10039261
mov dword [ebp - 0x2c], 0x8dd
mov eax, dword [ebp - 0x40]
sub eax, 0x3bea
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
cmp eax, 0xffffffff
setne cl
xor eax, eax
cmp ecx, 0xb34d
mov ecx, dword [ebp - 0x40]
setne al
sub ecx, eax
lea eax, [ebp - 0x32]
neg ecx
push eax
sbb ecx, ecx
xor dl, dl
inc ecx
mov dword [ebp - 0x64], ecx
mov byte [ebp - 0x32], bl
push ecx
call fcn.1003a9d3
dec dword [ebp - 0x14]
pop ecx
pop ecx
cmp dword [ebp - 0x14], 0x18
jg 0x10039210
dec dword [ebp - 0x24]
jns 0x1003918b
mov ebx, dword [ebp - 0x1c]
xor edx, edx
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x64]
mov esi, dword [ebp - 0x5c]
cmp dword [esi + ecx*4], eax
setge dl
xor eax, eax
test edx, edx
setle al
xor ecx, ecx
cmp dword [esi + edi*4], eax
setge cl
xor eax, eax
cmp dword [esi + ebx*4], ecx
sete al
xor edx, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x5c]
cmp dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x24]
setne dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0xa0]
setne bl
xor ecx, ecx
mov dword [eax], ebx
mov eax, dword [ebp - 0x18]
cmp ebx, eax
setg cl
mov dword [ebp - 0x64], ecx
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 5
call fcn.100099dd
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
push 0
pop ebx
jle 0x10039118
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffe8
jle 0x100390fd
lea ecx, [ebp - 0x5c]
call fcn.100099dd
cmp dword [ebp - 0x28], 0x6164
jge 0x1003931d
push str.qzbddhzeo_htp_qyfuhsoq_xxahmdlng_rxaecwwp_wiinsijso
call fcn.100420be
pop ecx
push ecx
lea eax, [ebp - 0xb8]
mov dword [ebp - 4], 2
push eax
push ecx
push ecx
push 1
lea ecx, [ebp - 0x3c]
call fcn.1003ac84
add esp, 0x14
push 0x764d
push dword [ebp + 0x14]
lea eax, [ebp - 0x3c]
mov edx, 0x7849
push 0x5511
push ebx
push 1
push eax
push 0x3b35
lea eax, [ebp - 0xb8]
mov ecx, 0x2b03
push eax
push ebx
call fcn.1003a8e3
mov dword [ebp - 0x80], 1
lea edx, [ebp - 0x31]
mov dword [ebp - 0x94], 0x23d4a1cf
xor cl, cl
mov dword [ebp - 0x70], 0x736d0c11
push 0x5063
mov dword [ebp - 0x74], ebx
push 0x2ff
mov byte [ebp - 0x31], bl
call fcn.100377f1
push 0x20e6
lea eax, [ebp - 0x74]
mov ecx, 0x5313
push eax
push ebx
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x80]
push eax
lea edx, [ebp - 0x94]
call fcn.10039522
add esp, 0x40
cmp dword [ebp - 0x3c], 0xffffffff
je 0x1003949a
mov dword [ebp - 0x28], 0x6951ad38
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x28], 0xc6e5c7a0
push 1
call fcn.1000995a
mov byte [ebp - 4], 9
xor ecx, ecx
mov dword [ebp - 0x28], 0xd1b9849b
inc ecx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x38], ebx
jmp 0x10039411
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0xc8], 0xc0ae9714
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], ecx
jl 0x10039400
lea eax, [ebp - 0x38]
push eax
push 0x5a22
push 0x36f6
push ebx
push ecx
push 0x613a
push 0x238f
push 0x4740
push ecx
lea edx, [ebp - 0xc4]
mov ecx, 0x51e7
call fcn.1003a8e3
lea edx, [ebp - 0x78]
xor cl, cl
call fcn.1003754b
add esp, 0x20
push 0x56e5
push ecx
push ecx
push ebx
mov ecx, 0x264a
call fcn.1003ac84
add esp, 0x14
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xc4]
call fcn.100099dd
push 0x4c1a
push ecx
push ecx
lea eax, [ebp - 0x3c]
mov dl, 1
push eax
push ecx
push ecx
lea eax, [ebp - 0xb8]
mov ecx, 0x78a1
push eax
call fcn.10037361
add esp, 0x1c
mov ecx, dword [ebp - 0x7c]
lea eax, [ebp - 0xb8]
cmp ecx, eax
je 0x100394b0
push 0xffffffffffffffff
push ebx
push eax
call fcn.1000165a
push ebx
lea ecx, [ebp - 0xb8]
jmp 0x10038d6c
push 0
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret