Function at 0x42cbd0
Capabilities:
Hide graphical window
Log keystrokes via polling

Disassembly:
sub esp, 0x108
push ebx
push ebp
mov ebp, ecx
xor ebx, ebx
push esi
push edi
cmp dword [ebp + 0x53060], ebx
je 0x42cbf8
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
cmp dword [ebp + 0x52e8c], ebx
je 0x42cc12
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
mov eax, dword [ebp + 0x5081c]
mov esi, dword [esp + 0x11c]
cmp eax, ebx
je 0x42cc5a
push 8
mov ecx, ebp
call fcn.0042b980
test eax, eax
je 0x42cc5a
mov eax, dword [esp + 0x120]
lea ecx, [ebp + 0x507ec]
push eax
push esi
call fcn.00414dc0
test eax, eax
je 0x42cc5a
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
cmp dword [ebp + 0x20], ebx
je 0x42cc76
cmp dword [ebp + 0x24], ebx
je 0x42cc76
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x51
call edi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x42ccb3
push ebx
mov ecx, ebp
call fcn.0042adb0
push 0xffffffffffffffff
push 0x10c
push 0x10b
lea ecx, [ebp + 0x6718]
mov byte [ebp + 0x65a8], 0
call fcn.00417880
jmp 0x42cf1f
push 0x57
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x42cccd
push 1
mov ecx, ebp
call fcn.0042adb0
jmp 0x42cf1f
push 0x45
call edi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x42cce7
push 0xe
mov ecx, ebp
call fcn.0042adb0
jmp 0x42cf1f
push 0x52
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x42cd01
push 8
mov ecx, ebp
call fcn.0042adb0
jmp 0x42cf1f
push 0x53
call edi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x42cd1b
push 0xd
mov ecx, ebp
call fcn.0042adb0
jmp 0x42cf1f
push 0x44
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x42cd35
push 0xb
mov ecx, ebp
call fcn.0042adb0
jmp 0x42cf1f
push 0x5a
call edi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x42cd93
mov ax, word [ebp + 0xd40]
cmp ax, 0x2e
jl 0x42cd59
mov word [ebp + 0xd40], 0x2e
jmp 0x42cd65
cmp ax, bx
jg 0x42cd65
mov word [ebp + 0xd40], bx
mov ax, word [ebp + 0xd40]
cmp ax, 0x2e
jne 0x42cd7e
mov byte [ebp + 0xd42], 2
jmp 0x42cf1f
cmp ax, bx
jne 0x42cf1f
mov byte [ebp + 0xd42], 1
jmp 0x42cf1f
push 0x43
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x42cdda
mov al, byte [0x777759]
mov ecx, dword [0x777768]
mov edx, dword [0x777764]
push 1
push eax
push ecx
push edx
mov ecx, 0x47ef18
call fcn.0041ec10
cmp eax, ebx
je 0x42cf1f
add eax, 8
mov ecx, 0x8ab828
push eax
call fcn.00451a70
jmp 0x42cf1f
push 0x56
call edi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x42ce1d
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, dword [ebp + 0x6210]
cmp eax, 0x64
jbe 0x42cf1f
cmp dword [ebp + 0x6518], ebx
jne 0x42ce12
mov ecx, 0x8ab828
call fcn.00451770
jmp 0x42cf1f
mov dword [ebp + 0x6518], ebx
jmp 0x42cf1f
push 0x42
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x42ce41
mov ecx, dword [ebp + 0x6208]
xor eax, eax
cmp ecx, ebx
sete al
mov dword [ebp + 0x6208], eax
jmp 0x42cf1f
push 0x47
call edi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x42ce5b
push 6
mov ecx, ebp
call fcn.0042adb0
jmp 0x42cf1f
push 0x46
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x42ce76
mov ecx, 0x8ab828
call fcn.004523e0
jmp 0x42cf1f
push 0x4e
call edi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x42ce90
push 0xc
mov ecx, ebp
call fcn.0042adb0
jmp 0x42cf1f
push 0x54
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x42cef7
cmp dword [ebp + 0x6518], 1
jne 0x42cf1f
mov edx, dword [ebp + 0x64a8]
xor eax, eax
cmp edx, ebx
sete al
cmp eax, ebx
mov dword [ebp + 0x64a8], eax
je 0x42ced9
mov eax, dword [0x8ab7bc]
push 0x100
push 0x100
push eax
lea ecx, [ebp + 0x6214]
call fcn.0043d5f0
jmp 0x42cf1f
mov ecx, dword [0x8ab7bc]
push 0x80
push 0x80
push ecx
lea ecx, [ebp + 0x6214]
call fcn.0043d5f0
jmp 0x42cf1f
push 0x59
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x42cf1f
cmp dword [ebp + 0x6518], 1
jne 0x42cf1f
mov ecx, dword [ebp + 0x64a4]
xor eax, eax
cmp ecx, ebx
sete al
mov dword [ebp + 0x64a4], eax
lea eax, [esi - 0xd]
cmp eax, 0xb2
ja case.0x42cf35.24
xor ecx, ecx
mov cl, byte [eax + 0x42d550]
jmp dword [ecx*4 + 0x42d520]
cmp dword [ebp + 0xd38], ebx
je case.0x42cf35.24
mov esi, dword [0x8ab7b0]
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, esi
jne case.0x42cf35.24
mov edx, dword [ebp + 0xd30]
mov eax, dword [ebp + 0xd38]
dec eax
mov ecx, edx
mov dword [ebp + 0xd2c], edx
mov dword [ebp + 0xd34], eax
mov eax, dword [ecx]
cmp eax, 9
jne 0x42cfb5
cmp dword [ebp + 0x513c4], ebx
jne 0x42cfb5
mov eax, dword [ebp + 0xd34]
mov edx, dword [ecx + 8]
cmp eax, 1
mov dword [ebp + 0xd2c], edx
jle 0x42cf9d
dec eax
jmp 0x42cfa2
mov eax, 1
mov dword [ebp + 0xd34], eax
mov ecx, dword [ebp + 0xd2c]
mov eax, dword [ecx]
cmp eax, 9
je 0x42cfe2
cmp ecx, ebx
je 0x42cfe2
cmp eax, 9
jne 0x42cfda
mov ecx, 0x47ef18
call fcn.0041c1e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
push eax
mov ecx, ebp
call fcn.0042adb0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
cmp dword [0x7e04f0], ebx
jne 0x42d078
mov esi, dword [0x8aa48c]
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, esi
jne 0x42d078
push 0x11
call edi
test al, 0x80
je 0x42d042
mov eax, dword [ebp + 0x6534]
dec eax
mov dword [ebp + 0x6534], eax
jns 0x42d029
mov dword [ebp + 0x6534], ebx
mov ecx, ebp
call fcn.00428790
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
push 0x12
call edi
test al, 0x80
je 0x42d07f
mov eax, dword [ebp + 0x6550]
dec eax
mov dword [ebp + 0x6550], eax
jns 0x42d05f
mov dword [ebp + 0x6550], ebx
mov ecx, ebp
call fcn.00428e00
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
mov ecx, ebp
call fcn.0042c7e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
cmp dword [0x7e04f0], ebx
jne 0x42d133
mov esi, dword [0x8aa48c]
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, esi
jne 0x42d133
push 0x11
call edi
test al, 0x80
je 0x42d0f2
mov esi, dword [ebp + 0x6534]
inc esi
mov dword [ebp + 0x6534], esi
mov eax, dword [ebp + 0x6530]
mov ecx, esi
cmp ecx, eax
jl 0x42d0d9
dec eax
mov dword [ebp + 0x6534], eax
mov ecx, ebp
call fcn.00428790
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
push 0x12
call edi
test al, 0x80
je 0x42d13a
mov esi, dword [ebp + 0x6550]
inc esi
mov dword [ebp + 0x6550], esi
mov eax, dword [ebp + 0x654c]
mov ecx, esi
cmp ecx, eax
jl 0x42d11a
dec eax
mov dword [ebp + 0x6550], eax
mov ecx, ebp
call fcn.00428e00
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
mov ecx, ebp
call fcn.0042c8e0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
mov eax, dword [0x8aa48c]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, dword [0x8aa48c]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov al, byte [ebp + 0x531ec]
lea ebx, [ebp + 0x531ec]
test al, al
jne 0x42d199
mov edi, 0x47ad94
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x8aa48c]
push ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ecx
jmp 0x42d251
push 0x10
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x42d1fa
mov ecx, 0x8aa488
mov byte [esp + 0x10], 0x21
mov byte [esp + 0x11], 0
call fcn.00450c70
mov eax, dword [0x8aa48c]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, dword [0x8aa48c]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
lea edx, [esp + 0x10]
jmp 0x42d240
xor ebx, ebx
jmp 0x42d293
push 0x10
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x42d272
mov ecx, 0x8aa488
mov byte [esp + 0x10], 0x40
mov byte [esp + 0x11], 0
call fcn.00450c70
mov eax, dword [0x8aa48c]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, dword [0x8aa48c]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
lea edx, [esp + 0x10]
mov eax, dword [0x8aa48c]
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 1
push 1
mov ecx, dword [0x8aa48c]
push 0xb1
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, 0x8aa488
call fcn.00450c70
jmp case.0x42cf35.24
mov ebx, 1
jmp 0x42d293
mov ebx, 2
jmp 0x42d293
mov ebx, 3
jmp 0x42d293
mov ebx, 4
jmp 0x42d293
mov ebx, 5
mov edx, ebx
shl edx, 7
add edx, ebx
lea eax, [ebx + edx*2]
lea eax, [eax + eax*2]
mov si, word [ebp + eax*4 + 0xdd0]
lea edi, [ebp + eax*4]
mov dword [esp + 0x10], edi
mov al, byte [edi + 0xdca]
test al, al
jne 0x42d2fe
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, dword [ebp + 0x29cd8]
cmp eax, 0x7d0
ja 0x42d2fe
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, dword [ebp + 0x29cd8]
cmp eax, 0x3e8
jbe 0x42d472
cmp si, 0x14
je 0x42d2fa
cmp si, 0x15
je 0x42d2fa
cmp si, 0x46
jne 0x42d472
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xda4]
test eax, eax
je 0x42d384
mov ecx, dword [ebp + 0x20]
lea eax, [ebp + 0x20]
test ecx, ecx
jne 0x42d320
push eax
push ebx
mov ecx, ebp
call fcn.0042d9e0
jmp 0x42d3e5
mov eax, dword [ebp + 0x24]
test eax, eax
jne 0x42d3e5
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x42d3e5
mov esi, str.gold
lea eax, [ebp + 0x3c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x42d362
test cl, cl
je 0x42d35e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x42d362
add eax, 2
add esi, 2
test cl, cl
jne 0x42d33e
xor eax, eax
jmp 0x42d367
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x42d3e5
mov al, byte [ebp + 0x5a]
test al, al
je 0x42d376
cmp al, 3
jne 0x42d3e5
lea eax, [ebp + 0x20]
mov ecx, ebp
push eax
push ebx
call fcn.0042d8f0
jmp 0x42d3e5
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x42d3e5
mov eax, dword [ebp + 0x24]
test eax, eax
jne 0x42d3e5
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x42d3e5
mov esi, str.gold
lea eax, [ebp + 0x3c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x42d3c5
test cl, cl
je 0x42d3c1
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x42d3c5
add eax, 2
add esi, 2
test cl, cl
jne 0x42d3a1
xor eax, eax
jmp 0x42d3ca
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x42d3e5
mov al, byte [ebp + 0x5a]
test al, al
je 0x42d3d9
cmp al, 3
jne 0x42d3e5
lea eax, [ebp + 0x20]
mov ecx, ebp
push eax
push ebx
call fcn.0042daa0
lea edi, [ebp + 0x3c]
mov esi, str.gold
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x42d413
test cl, cl
je 0x42d40f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x42d413
add eax, 2
add esi, 2
test cl, cl
jne 0x42d3ef
xor eax, eax
jmp 0x42d418
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x42d472
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x42d472
mov eax, dword [ebp + 0x24]
test eax, eax
jne 0x42d472
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x42d472
mov eax, dword [ebp + 0x75]
push edi
mov esi, 1
push eax
push 0x3ee
mov ecx, 0x8ab828
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x34], esi
call fcn.00451910
mov al, byte [ebp + 0x5a]
test al, al
jne 0x42d463
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [ebp + 0x29cd8], eax
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret 8
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xda4]
test eax, eax
je 0x42d494
lea edx, [esp + 0x14]
push str.Unable_to_use_it_for_a_while.
push edx
call fcn.0046811c
add esp, 8
jmp 0x42d4a8
inc ebx
lea eax, [esp + 0x14]
push ebx
push str.Belt__d_does_not_have_any_drug_
push eax
call fcn.0046811c
add esp, 0xc
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.00415280
mov edx, dword [0x7da1c4]
mov eax, dword [0x7da1c0]
push edx
push eax
mov ecx, ebp
call fcn.0042aab0
cmp eax, 0xffffffff
je case.0x42cf35.13
cmp eax, 0xe
jne case.0x42cf35.13
mov ecx, dword [0x7da1c4]
mov edx, dword [0x7da1c0]
mov eax, dword [esp + 0x120]
push ecx
mov ecx, dword [esp + 0x120]
push edx
push eax
push ecx
lea ecx, [ebp + 0x524f0]
call fcn.0043a810
test eax, eax
je case.0x42cf35.13
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x108
ret 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x108
ret 8