Function at 0x58b310
Capabilities:
Log keystrokes via application hook

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x6c
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
mov esi, ecx
je 0x58c0cf
mov eax, dword [eax + 0x1c]
cmp eax, ebp
je 0x58c0cf
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x58c0cf
cmp dword [0x6b1f10], ebp
je 0x58b37b
cmp dword [0x6b1f14], ebp
je 0x58b37b
mov al, byte [esp + 0x88]
test al, al
je 0x58b383
mov al, byte [esp + 0x84]
test al, al
je 0x58b372
mov al, byte [0x6c6e56]
test al, al
je 0x58b383
jmp 0x58b37b
mov al, byte [0x6c6e57]
test al, al
je 0x58b383
mov byte [esp + 0x88], 0
mov eax, dword [esi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.005d9ca3
mov edi, eax
mov ecx, edi
mov dword [esp + 0x14], edi
call fcn.005dcc7e
mov ebx, eax
mov al, byte [esp + 0x84]
shr ebx, 0x16
and bl, 1
test al, al
mov byte [esp + 0x13], bl
je 0x58bc70
call fcn.00559af0
push ebp
call fcn.005da5ec
mov eax, dword [esi + 0x40]
mov ecx, dword [esp + 0x80]
cmp eax, ecx
je 0x58c0cf
test byte [esi + 0x4c], 1
je 0x58b3f1
mov ecx, dword [esp + 0x88]
push 1
push ecx
push ebp
push eax
mov ecx, esi
call fcn.0058b310
push 0xe81b
mov ecx, edi
call fcn.005efc48
push 0xe81e
mov ecx, edi
mov dword [esp + 0x50], eax
call fcn.005efc48
push 0xe81c
mov ecx, edi
mov dword [esp + 0x54], eax
call fcn.005efc48
push 0xe81d
mov ecx, edi
mov dword [esp + 0x58], eax
call fcn.005efc48
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x1c]
lea edx, [esp + 0x2c]
mov dword [esp + 0x2c], ebp
push edx
push eax
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
call dword [sym.imp.USER32.dll_GetClientRect]
mov dword [esp + 0x84], ebp
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + ebx + 0x4c]
mov ecx, edi
mov edx, dword [edi]
call dword [edx + 0xe4]
mov ebp, eax
mov ecx, edi
mov dword [esp + ebx + 0x6c], ebp
call fcn.005dcd6b
mov ecx, ebp
mov ebx, eax
call fcn.005dcc64
test eax, 0x10000000
je 0x58b512
mov ecx, dword [ebp + 0x1c]
lea eax, [esp + 0x3c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ebp, dword [esp + 0x14]
mov edi, dword [sym.imp.USER32.dll_ScreenToClient]
lea edx, [esp + 0x3c]
mov eax, dword [ebp + 0x1c]
push edx
push eax
call edi
mov edx, dword [ebp + 0x1c]
lea ecx, [esp + 0x44]
push ecx
push edx
call edi
add ebx, 0xffff17e5
cmp ebx, 3
ja case.default.0x58b5ca
jmp dword [ebx*4 + 0x58c0dc]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x20], eax
jmp 0x58b5c5
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], ecx
jmp 0x58b5c5
mov edx, dword [esp + 0x44]
mov dword [esp + 0x1c], edx
jmp 0x58b5c5
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
jmp 0x58b5c5
mov ecx, edi
call fcn.005dcc64
test eax, 0x10000000
je 0x58b58d
mov edx, dword [edi + 0x1c]
lea ecx, [esp + 0x3c]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ebp, dword [esp + 0x14]
mov edi, dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [esp + 0x3c]
mov ecx, dword [ebp + 0x1c]
push eax
push ecx
call edi
mov eax, dword [ebp + 0x1c]
lea edx, [esp + 0x44]
push edx
push eax
call edi
add ebx, 0xffff17e5
cmp ebx, 3
ja case.default.0x58b5ca
jmp dword [ebx*4 + 0x58c0ec]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x20], ecx
jmp 0x58b5c5
mov edx, dword [esp + 0x40]
mov dword [esp + 0x28], edx
jmp 0x58b5c5
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
jmp 0x58b5c5
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x24], ecx
jmp 0x58b5c5
add ebx, 0xffff17e5
cmp ebx, 3
ja case.default.0x58b5ca
jmp dword [ebx*4 + 0x58c0fc]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x20], edx
jmp 0x58b5c5
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
jmp 0x58b5c5
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
jmp 0x58b5c5
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], edx
cmp ebx, 3
ja case.default.0x58b5ca
jmp dword [ebx*4 + 0x58c10c]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
cmp ecx, eax
jg case.default.0x58b5ca
mov dword [esp + 0x30], eax
jmp case.default.0x58b5ca
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jl case.default.0x58b5ca
mov dword [esp + 0x38], eax
jmp case.default.0x58b5ca
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
jg case.default.0x58b5ca
mov dword [esp + 0x2c], eax
jmp case.default.0x58b5ca
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
jl case.default.0x58b5ca
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x84]
add eax, 4
cmp eax, 0x10
mov dword [esp + 0x84], eax
jl 0x58b467
mov al, byte [esp + 0x13]
test al, al
je 0x58b65d
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov edx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
jmp 0x58b66d
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
cmp edi, ecx
jg 0x58b677
mov edi, ecx
mov dword [esp + 0x2c], edi
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
cmp ebx, ecx
jg 0x58b689
mov ebx, ecx
mov dword [esp + 0x30], ebx
cmp edx, eax
jl 0x58b693
mov edx, eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jl 0x58b6a5
mov ecx, eax
mov dword [esp + 0x38], ecx
sub edx, edi
cmp edx, 0x14
jl 0x58c0cf
sub ecx, ebx
cmp ecx, 0x14
jl 0x58c0cf
mov ebp, dword [esp + 0x80]
mov ecx, dword [ebp + 0x70]
mov eax, dword [ecx]
call dword [eax + 0xe4]
mov edi, eax
mov ecx, edi
call fcn.005dcd6b
mov ecx, dword [ebp + 0x70]
push 0x659338
mov ebx, eax
call fcn.005dda74
test eax, eax
je 0x58b71a
mov ebp, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.005d9ca3
cmp ebx, 0xe81b
je 0x58b713
cmp ebx, 0xe81e
je 0x58b713
add eax, 0xa8
jmp 0x58b736
add eax, 0xa0
jmp 0x58b736
cmp ebx, 0xe81b
je 0x58b730
cmp ebx, 0xe81e
lea eax, [ebp + 0xa8]
jne 0x58b736
lea eax, [ebp + 0xa0]
mov ebx, dword [eax]
mov ebp, dword [eax + 4]
cmp ebx, 0x14
jge 0x58b745
mov ebx, 0x14
cmp ebp, 0x14
jge 0x58b74f
mov ebp, 0x14
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
sub eax, edx
cmp ebx, eax
jle 0x58b75f
mov ebx, eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
sub eax, edx
cmp ebp, eax
jle 0x58b76f
mov ebp, eax
cmp ebx, 0x14
jl 0x58c0cf
cmp ebp, 0x14
jl 0x58c0cf
mov al, byte [esi + 0x4c]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x1c]
or al, 1
mov byte [esi + 0x4c], al
lea eax, [esi + 0xc0]
mov dword [esi + 0x40], edx
mov edx, dword [esp + 0x20]
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x3c], edi
mov dword [eax + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov ecx, edi
mov dword [eax + 0xc], edx
call fcn.005dcd6b
mov edi, eax
lea eax, [esp + 0x5c]
mov dword [esi + 0x44], ebx
push eax
mov ecx, esi
mov dword [esi + 0x48], ebp
call fcn.00589ec0
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x64]
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
add ecx, edx
cmp edi, 0xe81c
je 0x58b7f7
cmp edi, 0xe81d
jne 0x58b812
mov dl, byte [esp + 0x13]
test dl, dl
je 0x58b812
xor edx, edx
cmp edi, 0xe81c
sete dl
add edx, 0xe81c
mov edi, edx
add edi, 0xffff17e5
cmp edi, 3
mov dword [esp + 0x18], edi
ja case.default.0x58b821
jmp dword [edi*4 + 0x58c11c]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
sub edx, ebx
mov dword [esi + 0x44], edx
mov edx, dword [esi + 0x48]
add edx, edi
mov dword [esp + 0x38], edx
jmp case.default.0x58b821
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esi + 0x48]
sub edx, ebx
mov dword [esi + 0x44], edx
mov edx, dword [esp + 0x38]
sub edx, edi
mov dword [esp + 0x30], edx
jmp case.default.0x58b821
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
sub edx, ebx
mov dword [esi + 0x48], edx
mov edx, dword [esi + 0x44]
add edx, edi
mov dword [esp + 0x34], edx
jmp case.default.0x58b821
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x30]
mov edi, dword [esi + 0x44]
sub edx, ebx
mov dword [esi + 0x48], edx
mov edx, dword [esp + 0x34]
sub edx, edi
mov dword [esp + 0x2c], edx
mov edi, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
sub edi, eax
sub edx, ecx
mov dword [esi + 0x44], edi
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x40]
test eax, eax
je 0x58b8b0
mov eax, dword [eax + 0x1c]
push 5
push eax
call dword [sym.imp.USER32.dll_GetWindow]
mov ebp, dword [sym.imp.USER32.dll_SetWindowPos]
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je 0x58b901
test esi, esi
jne 0x58b8d1
xor eax, eax
jmp 0x58b8d4
mov eax, dword [esi + 0x1c]
push eax
push edi
call dword [sym.imp.USER32.dll_SetParent]
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x6c]
push ecx
call fcn.00582b70
add esp, 4
push 0x273
push 0
push 0
push 0
push 0
push 0
push edi
call ebp
mov al, byte [esp + 0x88]
mov bl, 1
test al, al
mov byte [esp + 0x84], bl
je 0x58bb43
or byte [esi + 0x4c], 8
call fcn.005d3fb8
mov dword [esp + 0x80], eax
mov eax, dword [0x6b1f10]
test eax, eax
mov dword [esp + 0x88], 0
jle 0x58bb3f
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x18]
cmp edx, 3
mov edi, eax
mov ebp, ecx
ja case.default.0x58b966
jmp dword [edx*4 + 0x58c12c]
mov eax, dword [0x6b1f10]
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x88]
inc eax
push eax
sub ecx, ebp
push edx
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ebp, eax
mov eax, dword [esp + 0x50]
add ebp, eax
jmp case.default.0x58b966
mov eax, dword [0x6b1f10]
mov edx, dword [esp + 0x88]
inc eax
push eax
push edx
sub ecx, dword [esp + 0x38]
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, ebp
sub ecx, eax
mov dword [esp + 0x50], ecx
jmp case.default.0x58b966
mov ecx, dword [0x6b1f10]
mov edx, dword [esp + 0x88]
inc ecx
push ecx
push edx
sub eax, dword [esp + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edi, eax
add edi, ebx
jmp case.default.0x58b966
mov ecx, dword [0x6b1f10]
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x88]
inc ecx
push ecx
sub eax, ebx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ebx, edi
sub ebx, eax
test esi, esi
jne 0x58ba01
xor eax, eax
jmp 0x58ba04
mov eax, dword [esi + 0x1c]
mov cl, byte [esp + 0x84]
neg cl
sbb ecx, ecx
sub edi, ebx
and ecx, 0x20
or ecx, 0x140
push ecx
mov ecx, dword [esp + 0x54]
sub ebp, ecx
push ebp
push edi
push ecx
push ebx
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x84], 0
test eax, eax
je 0x58bad7
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x3c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x18]
cmp eax, 3
ja case.default.0x58ba5a
jmp dword [eax*4 + 0x58c13c]
mov eax, dword [esp + 0x48]
mov ecx, dword [esi + 0x48]
sub eax, ecx
mov dword [esp + 0x40], eax
jmp 0x58ba9e
mov ecx, dword [esp + 0x44]
mov eax, dword [esi + 0x44]
sub ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x3c], ecx
jmp 0x58baa2
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0x44]
push ecx
push edx
push 0
lea eax, [esp + 0x48]
push 0
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
push 0x140
sub edx, eax
push edx
mov edx, dword [esp + 0x4c]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, dword [esp + 0x28]
push 1
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov edx, dword [esi + 0x1c]
push 0xb85
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
push 1
push 1
push 1
call fcn.0052ea80
add esp, 0xc
call fcn.005d3fb8
mov ecx, dword [esp + 0x80]
sub ecx, eax
mov eax, dword [0x6b1f14]
cmp ecx, eax
jge 0x58bb05
sub eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.005d3fb8
mov ecx, dword [0x6b1f10]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x88]
inc eax
cmp eax, ecx
mov dword [esp + 0x88], eax
jl 0x58b941
mov bl, byte [esp + 0x84]
mov edi, dword [esp + 0x14]
mov ebp, dword [sym.imp.USER32.dll_SetWindowPos]
and byte [esi + 0x4c], 0xf7
test edi, edi
je 0x58bb7f
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x6c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
push 0x140
push edx
push eax
push 0
push 0
push 1
push edi
call ebp
mov ecx, dword [esi + 0x1c]
push 0xb85
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_RedrawWindow]
test esi, esi
jne 0x58bb87
xor edx, edx
jmp 0x58bb8a
mov edx, dword [esi + 0x1c]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
neg bl
sbb ebx, ebx
mov edi, dword [esp + 0x34]
and ebx, 0x20
sub ecx, eax
or ebx, 0x140
push ebx
push ecx
mov ecx, dword [esp + 0x34]
sub edi, ecx
push edi
push eax
push ecx
push 0
push edx
call ebp
mov edx, dword [esi + 0x1c]
push 0xb85
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
mov eax, dword [0x6c6e80]
mov edi, dword [sym.imp.USER32.dll_SetWindowsHookExA]
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x6c6e7c], esi
test eax, eax
jne 0x58bbf6
call ebx
push eax
push 0
push 0x58ae60
push 7
call edi
mov dword [0x6c6e80], eax
mov eax, dword [0x6c6e84]
test eax, eax
jne 0x58bc12
call ebx
push eax
push 0
push 0x58b200
push 2
call edi
mov dword [0x6c6e84], eax
mov eax, dword [esi + 0x40]
xor edi, edi
mov cl, byte [eax + 0x120]
and cl, 0xfe
mov byte [eax + 0x120], cl
mov eax, dword [esi + 0x40]
mov ebx, dword [eax + 0x134]
test ebx, ebx
jle 0x58bc56
or ebp, 0xffffffff
mov dword [esp + 0x20], ebp
mov ecx, dword [esi + 0x40]
mov edx, dword [ecx + 0x130]
mov ecx, dword [edx + edi*4]
mov edx, dword [esp + 0x20]
push edx
push ebp
mov eax, dword [ecx]
call dword [eax + 0x20]
inc edi
cmp edi, ebx
jl 0x58bc3a
mov eax, dword [esi + 0x1c]
push 0
push 0x64
push 1
push eax
call dword [sym.imp.USER32.dll_SetTimer]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret 0x10
test byte [esi + 0x4c], 1
je 0x58c0cf
mov ecx, dword [esp + 0x80]
push ebp
push ecx
call fcn.005883b0
add esp, 8
cmp eax, ebp
je 0x58bc9a
push ebp
push ebp
push 0xffffffffffffffff
mov ecx, eax
call fcn.00590620
mov eax, dword [0x6c6e80]
mov ecx, dword [0x6c6e84]
cmp eax, ebp
jne 0x58bcad
cmp ecx, ebp
je 0x58bce1
cmp dword [0x6c6e7c], esi
jne 0x58bce1
mov edi, dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
cmp eax, ebp
je 0x58bcc8
push eax
call edi
mov ecx, dword [0x6c6e84]
cmp ecx, ebp
je 0x58bccf
push ecx
call edi
mov dword [0x6c6e80], ebp
mov dword [0x6c6e84], ebp
mov dword [0x6c6e7c], ebp
mov al, byte [esp + 0x88]
test al, al
je 0x58bf58
mov cl, byte [esi + 0x4c]
or cl, 8
mov byte [esi + 0x4c], cl
mov ecx, dword [esi + 0x3c]
call fcn.005dcd6b
mov edi, eax
cmp edi, 0xe81c
je 0x58bd13
cmp edi, 0xe81d
jne 0x58bd2a
test bl, bl
je 0x58bd2a
xor edx, edx
cmp edi, 0xe81c
sete dl
add edx, 0xe81c
mov edi, edx
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x2c]
push edx
call fcn.005e0f08
cmp esi, ebp
jne 0x58bd4f
xor eax, eax
jmp 0x58bd52
mov eax, dword [esi + 0x1c]
push 5
push eax
call dword [sym.imp.USER32.dll_GetWindow]
mov dword [esp + 0x1c], eax
call fcn.005d3fb8
mov dword [esp + 0x84], eax
mov eax, dword [0x6b1f10]
xor ebx, ebx
cmp eax, ebp
mov dword [esp + 0x88], ebx
jle 0x58bf4e
add edi, 0xffff17e5
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
sub eax, ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x38]
dec eax
cmp ebx, 3
mov edi, ecx
mov ebp, edx
ja case.default.0x58bdb7
jmp dword [ebx*4 + 0x58c14c]
mov ecx, dword [0x6b1f10]
mov ebp, dword [esp + 0x30]
inc ecx
sub edx, ebp
push ecx
push eax
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov ebp, eax
add ebp, edx
jmp 0x58be46
mov ecx, dword [0x6b1f10]
inc ecx
push ecx
mov ecx, dword [esp + 0x34]
sub edx, ecx
push eax
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x4c]
mov edx, ebp
sub edx, eax
jmp 0x58be46
mov edx, dword [0x6b1f10]
mov edi, dword [esp + 0x2c]
inc edx
sub ecx, edi
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x4c]
mov edi, eax
add edi, ecx
jmp 0x58be42
mov edx, dword [0x6b1f10]
inc edx
push edx
mov edx, dword [esp + 0x30]
sub ecx, edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, edi
sub ecx, eax
jmp 0x58be42
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
test esi, esi
jne 0x58be4e
xor eax, eax
jmp 0x58be51
mov eax, dword [esi + 0x1c]
sub ebp, edx
push 0
sub edi, ecx
push ebp
mov ebp, dword [sym.imp.USER32.dll_SetWindowPos]
push edi
push edx
push ecx
push 0
push eax
call ebp
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x58bef8
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x3c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
cmp ebx, 3
ja case.default.0x58be86
jmp dword [ebx*4 + 0x58c15c]
mov eax, dword [esp + 0x48]
mov ecx, dword [esi + 0x48]
sub eax, ecx
mov dword [esp + 0x40], eax
jmp 0x58beca
mov ecx, dword [esp + 0x44]
mov eax, dword [esi + 0x44]
sub ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x3c], ecx
jmp 0x58bece
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
push edx
push eax
push 0
lea ecx, [esp + 0x48]
push 0
push ecx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
push 0
sub edx, eax
push edx
mov edx, dword [esp + 0x4c]
sub edx, ecx
push edx
push eax
push ecx
push 1
push edi
call ebp
mov edx, dword [esi + 0x1c]
push 0xb85
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
push 1
push 1
push 1
call fcn.0052ea80
add esp, 0xc
call fcn.005d3fb8
mov ecx, dword [esp + 0x84]
sub ecx, eax
mov eax, dword [0x6b1f14]
cmp ecx, eax
jge 0x58bf26
sub eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.005d3fb8
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x84], eax
mov eax, dword [0x6b1f10]
inc ebx
cmp ebx, eax
mov dword [esp + 0x88], ebx
jl 0x58bd8b
mov al, byte [esi + 0x4c]
and al, 0xf7
xor ebp, ebp
mov byte [esi + 0x4c], al
mov eax, dword [esi + 0x40]
xor edi, edi
mov cl, byte [eax + 0x120]
and cl, 0xfe
mov byte [eax + 0x120], cl
mov eax, dword [esi + 0x40]
mov ebx, dword [eax + 0x134]
cmp ebx, ebp
jle 0x58bf99
or ebp, 0xffffffff
mov ecx, dword [esi + 0x40]
or eax, 0xffffffff
push eax
push ebp
mov edx, dword [ecx + 0x130]
mov ecx, dword [edx + edi*4]
mov edx, dword [ecx]
call dword [edx + 0x20]
inc edi
cmp edi, ebx
jl 0x58bf7c
xor ebp, ebp
mov eax, dword [esi + 0x1c]
mov edi, dword [sym.imp.USER32.dll_KillTimer]
push 1
push eax
call edi
mov ecx, dword [esi + 0x1c]
push 2
push ecx
call edi
mov cl, byte [esi + 0x4c]
and cl, 0xfb
cmp esi, ebp
mov byte [esi + 0x4c], cl
jne 0x58bfc0
xor eax, eax
jmp 0x58bfc3
mov eax, dword [esi + 0x1c]
push 5
push eax
call dword [sym.imp.USER32.dll_GetWindow]
mov edi, eax
mov byte [esp + 0x84], 0
cmp edi, ebp
je 0x58c072
mov ebx, dword [esp + 0x80]
cmp dword [ebx + 0x1c], ebp
je 0x58c072
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, ebp
je 0x58c026
cmp esi, ebp
jne 0x58c000
xor ecx, ecx
jmp 0x58c003
mov ecx, dword [esi + 0x1c]
cmp eax, ecx
je 0x58c01e
cmp esi, ebp
jne 0x58c00f
xor ecx, ecx
jmp 0x58c012
mov ecx, dword [esi + 0x1c]
push eax
push ecx
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x58c026
mov byte [esp + 0x84], 1
mov edx, dword [ebx + 0x1c]
push edx
push edi
call dword [sym.imp.USER32.dll_SetParent]
mov eax, dword [ebx + 0x6c]
push eax
call fcn.00582b70
mov edx, dword [ebx + 0x1c]
add esp, 4
lea ecx, [esp + 0x5c]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
sub eax, ecx
mov ecx, dword [esp + 0x64]
push 0x140
sub ecx, edx
push eax
push ecx
push ebp
push ebp
push 1
push edi
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0x283
push ebp
push ebp
push ebp
push ebp
push ebp
mov ecx, esi
call fcn.005dcdf0
mov ecx, dword [esi + 0x3c]
push ebp
push ebp
push 0xffffffffffffffff
call fcn.00590620
mov dl, byte [esi + 0x4c]
mov dword [esi + 0x3c], ebp
and dl, 0xf8
mov dword [esi + 0x40], ebp
mov byte [esi + 0x4c], dl
mov dword [esi + 0x50], 1
mov dword [esi + 0x64], ebp
mov dword [esi + 0x60], ebp
mov dword [esi + 0x5c], ebp
add esi, 0xc0
push esi
call dword [sym.imp.USER32.dll_SetRectEmpty]
mov al, byte [esp + 0x84]
test al, al
je 0x58c0cf
mov ecx, dword [esp + 0x14]
call fcn.005dcea8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret 0x10