Function at 0x462e00
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x63ce1c]
sub esp, 0x70
test eax, eax
je 0x463ad9
mov ecx, dword [esp + 0x74]
push ebx
push ebp
push esi
push edi
push 0
lea eax, [esp + 0x74]
push eax
push ecx
call fcn.00591060
mov ebx, eax
add esp, 0xc
test ebx, ebx
mov dword [esp + 0x38], ebx
je 0x463ad5
mov eax, dword [ebx + 0x12c4]
test eax, eax
je 0x463ad5
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call esi
push 0x11
and eax, 0x8000
sub eax, 0x8000
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x68], eax
call esi
mov ecx, dword [ebx + 0x2148]
mov edx, dword [ebx + 0x213c]
mov esi, dword [ebx + 0x2144]
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], esi
and eax, 0x8000
sub eax, 0x8000
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x2140]
cmp eax, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x50], ecx
jne 0x462eae
cmp esi, edx
jle 0x463ad5
cmp eax, ecx
jg 0x463ad5
test edx, edx
jl 0x463ad5
test eax, eax
jl 0x463ad5
test esi, esi
jl 0x463ad5
test ecx, ecx
jl 0x463ad5
mov eax, dword [ebx + 0x1308]
mov esi, dword [ebx + 0x130c]
mov ecx, dword [ebx + 0x12c4]
mov edi, dword [ecx + 0x44]
sub eax, esi
test eax, eax
mov dword [esp + 0x10], edi
jle 0x462f03
cmp edi, ecx
je 0x462eff
mov edi, dword [edi + 0x44]
dec eax
test eax, eax
jg 0x462ef3
mov dword [esp + 0x10], edi
test edi, edi
je 0x463ad5
push 0x64
mov dword [esp + 0x5c], 0x64
call fcn.005d9f91
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x462f36
push eax
call fcn.00421dc0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov esi, dword [ebx + 0x189c]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [ebx + 0x12c4]
mov ebp, dword [edi + 8]
sub ecx, esi
dec ecx
cmp edi, ebx
je 0x462fc8
mov edx, dword [esp + 0x38]
mov edi, dword [edx + 0x1360]
mov edx, dword [esp + 0x10]
mov edi, edi
sub ecx, esi
cmp edi, 1
je 0x462f75
cmp edi, 2
jne 0x462f77
cmp dword [0x680f7c], 1
jne 0x462f77
sub ecx, esi
mov edx, dword [edx + 0x44]
mov eax, dword [edx + 8]
cmp eax, ebp
mov dword [esp + 0x10], edx
je 0x462fb9
cmp edi, 3
mov ebp, eax
je 0x462f99
cmp edi, 2
jne 0x462fb1
cmp dword [0x680f7c], edi
jne 0x462fb1
mov eax, 0x55555555
imul esi
sub edx, esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
add ecx, edx
mov edx, dword [esp + 0x10]
mov eax, esi
neg eax
cmp ecx, eax
jl 0x462fbf
cmp edx, ebx
jne 0x462f60
jmp 0x462fcc
mov edx, dword [edx + 0x40]
mov dword [esp + 0x10], edx
jmp 0x462fcc
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x462fec
mov ecx, dword [esp + 0x14]
push ecx
call fcn.005d9fa3
push 0
call fcn.00421dc0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov edx, dword [esp + 0x10]
mov ebp, dword [edx + 8]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
mov byte [0x676ee8], 0
mov byte [ebx], 0
mov eax, dword [edi + 0x1478]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
test esi, esi
mov dword [esp + 0x6c], esi
jne 0x463033
push ebx
call fcn.005d9fa3
push esi
call fcn.00421dc0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov ecx, dword [edi + 0x1754]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x68], eax
mov eax, dword [edi + 0x214c]
xor ebx, ebx
cmp eax, ebx
je 0x463059
mov dword [esp + 0x20], ebx
xor eax, eax
jmp 0x46307a
cmp dword [0x61b5c4], ebx
jne 0x46306d
cmp dword [edi + 0x18a4], ebx
mov dword [esp + 0x20], ebx
je 0x463075
mov dword [esp + 0x20], 1
mov eax, dword [0x693624]
cmp eax, ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x5c], 0xffffffff
je 0x46309e
mov edx, dword [edi + 0x1894]
push edx
push esi
call fcn.0049cd10
add esp, 8
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x1c]
push ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ebx
call fcn.0043c610
mov edx, dword [0x63ca90]
push edx
mov dword [esp + 0x2c], eax
call fcn.0043c610
add esp, 8
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], ebx
mov edi, edi
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x1c], eax
jg 0x46397e
mov edi, dword [esp + 0x10]
cmp ebp, dword [edi + 8]
je 0x46312d
mov ecx, dword [edi + 0x1c]
xor esi, esi
push ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], esi
call fcn.0043c610
mov edx, dword [0x63ca90]
push edx
mov dword [esp + 0x2c], eax
call fcn.0043c610
add esp, 8
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
cmp ecx, eax
jne 0x4634ef
mov ecx, dword [edi]
mov ebp, 1
mov dword [esp + 0x4c], ebp
mov edx, 0x677f50
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x463150
mov eax, 0x677f50
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463162
mov esi, dword [esp + 0x28]
sub eax, edx
mov edi, eax
cmp esi, edi
jle 0x46317b
mov esi, edi
mov dword [esp + 0x28], esi
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x463195
push 0x677f50
call fcn.005868a0
add esp, 4
cmp eax, 2
je 0x463197
xor ebp, ebp
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x50]
jne 0x463242
test ebx, ebx
je 0x463201
test ebp, ebp
je 0x463201
mov ebx, dword [esp + 0x18]
xor esi, esi
cmp ebx, edi
jge 0x4631f5
jmp 0x4631c0
push ebx
push 0x677f50
call fcn.005867a0
add esp, 8
cmp eax, 0xffffffff
je 0x4631eb
cmp eax, 0xfffffffe
je 0x4631eb
lea ecx, [ebx + 0x677f50]
push ecx
call fcn.00587620
add esp, 4
test eax, eax
je 0x4631f5
inc ebx
cmp ebx, edi
mov esi, 1
jl 0x4631c0
sub ebx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x18], ebx
jmp 0x463205
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x463225
push ebx
push 0x677f50
call fcn.005dd489
add esp, 8
cmp eax, 1
jne 0x463225
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, edi
jle 0x46322f
mov ebx, edi
mov dword [esp + 0x18], ebx
mov byte [ebx + 0x677f51], 0
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x1c], 0xffffffff
test ebx, ebx
je 0x463284
test ebp, ebp
je 0x463284
test esi, esi
jle 0x463284
mov edi, edi
push esi
push 0x677f50
call fcn.005867a0
add esp, 8
cmp eax, 0xffffffff
je 0x46327b
cmp eax, 0xfffffffe
je 0x46327b
lea edx, [esi + 0x677f50]
push edx
call fcn.00587620
add esp, 4
test eax, eax
je 0x463284
dec esi
test esi, esi
mov dword [esp + 0x28], esi
jg 0x463250
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4632a8
test esi, esi
jle 0x4632a8
push esi
push 0x677f50
call fcn.005dd489
add esp, 8
cmp eax, 2
jne 0x4632a8
dec esi
mov dword [esp + 0x28], esi
lea eax, [esi + 0x677f50]
mov edx, 0x676ee8
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4632b5
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4636a9
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x12c4]
mov esi, ecx
jmp 0x4632e0
cmp esi, eax
je 0x4632f2
mov esi, dword [esi + 0x44]
mov edx, dword [esi + 8]
cmp edx, dword [ecx + 8]
je 0x4632e0
mov esi, dword [esi + 0x40]
test esi, esi
je 0x4636a9
mov eax, dword [esi + 0x1c]
push eax
call fcn.0043c610
add esp, 4
mov dword [esp + 0x24], eax
lea ebx, [ebx]
mov edx, dword [esi]
mov eax, edx
xor edi, edi
lea ebp, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463320
sub eax, ebp
mov ebp, eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x463348
push edx
call fcn.005868a0
add esp, 4
cmp eax, 2
jne 0x463348
mov ebx, 1
jmp 0x46334a
xor ebx, ebx
test ebp, ebp
jle 0x4634d5
cmp esi, dword [esp + 0x10]
jne 0x463362
cmp edi, dword [esp + 0x28]
jge 0x4634d5
mov eax, dword [esp + 0x20]
test eax, eax
je 0x463394
test ebx, ebx
je 0x463394
mov ecx, dword [esi]
push edi
push ecx
call fcn.005867a0
add esp, 8
test eax, eax
jg case.0x4633d3.4
cmp eax, 0xffffffff
je case.0x4633d3.4
cmp eax, 0xfffffffe
je case.0x4633d3.4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4633ba
mov edx, dword [esi]
push edi
push edx
call fcn.005dd489
add esp, 8
cmp eax, 1
je case.0x4633d3.4
cmp eax, 2
je case.0x4633d3.4
mov eax, dword [esi]
movzx eax, byte [eax + edi]
add eax, 0xfffffffe
cmp eax, 0x1d
ja case.0x4633d3.4
movzx ecx, byte [eax + 0x463af8]
jmp dword [ecx*4 + 0x463ae0]
mov eax, dword [esp + 0x3c]
xor edx, edx
test eax, eax
sete dl
mov dword [esp + 0x34], 1
mov dword [esp + 0x3c], edx
jmp case.0x4633d3.4
mov ecx, dword [esp + 0x40]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], eax
jmp case.0x4633d3.4
mov eax, dword [esp + 0x44]
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x34], 1
mov dword [esp + 0x44], ecx
jmp case.0x4633d3.4
mov edx, dword [0x63ca90]
push edx
call fcn.0043c610
add esp, 4
push eax
mov eax, dword [esi + 0x1c]
push eax
call fcn.0043c610
add esp, 4
push eax
mov eax, dword [esi]
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x30]
push edx
add eax, edi
push eax
call fcn.00529b50
mov ecx, dword [esp + 0x40]
add esp, 0x14
add edi, eax
test ecx, ecx
jne 0x46348b
test eax, eax
jne 0x46347e
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], 1
jmp case.0x4633d3.4
xor ecx, ecx
cmp eax, 2
setg cl
inc ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], 1
jmp case.0x4633d3.4
mov edx, dword [esi + 0x1c]
xor eax, eax
push edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
call fcn.0043c610
mov dword [esp + 0x28], eax
mov eax, dword [0x63ca90]
push eax
call fcn.0043c610
add esp, 8
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
inc edi
cmp edi, ebp
jl 0x463352
cmp esi, dword [esp + 0x10]
je 0x4636a9
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x463310
jmp 0x4636a9
jle 0x4636a9
mov esi, dword [esp + 0x10]
mov ecx, dword [esi]
mov edx, 0x677f50
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x463500
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x46352b
push 0x677f50
call fcn.005868a0
add esp, 4
cmp eax, 2
jne 0x46352b
mov edi, 1
jmp 0x46352d
xor edi, edi
mov ecx, dword [esp + 0x50]
cmp dword [esp + 0x1c], ecx
jne 0x4635de
mov eax, 0x677f50
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463543
sub eax, edx
test ebx, ebx
mov esi, eax
je 0x46359d
test edi, edi
je 0x46359d
mov ebx, dword [esp + 0x18]
xor edi, edi
cmp ebx, esi
jge 0x463595
push ebx
push 0x677f50
call fcn.005867a0
add esp, 8
cmp eax, 0xffffffff
je 0x46358b
cmp eax, 0xfffffffe
je 0x46358b
lea edx, [ebx + 0x677f50]
push edx
call fcn.00587620
add esp, 4
test eax, eax
je 0x463595
inc ebx
cmp ebx, esi
mov edi, 1
jl 0x463560
sub ebx, edi
mov dword [esp + 0x18], ebx
jmp 0x4635a1
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4635c1
push ebx
push 0x677f50
call fcn.005dd489
add esp, 8
cmp eax, 1
jne 0x4635c1
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, esi
jle 0x4635cb
mov ebx, esi
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x10]
mov byte [ebx + 0x677f51], 0
mov dword [esp + 0x1c], 0xffffffff
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x463663
cmp ebp, dword [esi + 8]
jne 0x463663
mov ecx, dword [esi + 0x10]
test ecx, ecx
jle 0x463643
cmp byte [0x677f50], 0x20
mov eax, 0x677f50
jne 0x46360e
test ecx, ecx
jle 0x46360e
mov dl, byte [eax + 1]
inc eax
dec ecx
cmp dl, 0x20
je 0x463600
cmp byte [eax], 0
jne 0x463618
mov eax, 0x5f4858
mov edx, 0x676ee8
sub edx, eax
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x463620
jmp 0x4636a9
xor eax, eax
jmp 0x463650
mov cl, byte [eax + 0x677f50]
mov byte [eax + 0x676ee8], cl
inc eax
test cl, cl
jne 0x463650
jmp 0x4636a9
mov ax, word [0x5f4c8c]
mov cl, byte [0x5f4c8e]
mov word [0x676ee8], ax
mov eax, 0x677f50
mov byte [0x676eea], cl
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x463682
mov edi, 0x676ee8
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x463693
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
cmp dword [edx + 0x12f0], eax
jne 0x4636cb
cmp dword [eax + 0x20], 2
jne 0x4636cb
mov byte [0x676ee8], 0
jmp 0x46395c
mov cl, byte [0x676ee8]
test cl, cl
je 0x46395c
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4638c3
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4638d2
mov eax, dword [esp + 0x3c]
test eax, eax
mov dword [esp + 0x4c], 0
mov byte [0x677f50], 0
je 0x46372f
mov eax, 0x677f50
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463710
sub eax, edx
push 2
lea eax, [eax + 0x677f50]
push 0x5f5094
push eax
call fcn.005d9929
add esp, 0xc
mov eax, dword [esp + 0x40]
test eax, eax
je 0x46375f
mov eax, 0x677f50
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463740
sub eax, edx
push 0x1f
lea ecx, [eax + 0x677f50]
push 0x5f5094
push ecx
call fcn.005d9929
add esp, 0xc
mov eax, dword [esp + 0x44]
test eax, eax
je 0x46378f
mov eax, 0x677f50
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463770
sub eax, edx
push 0x16
lea edx, [eax + 0x677f50]
push 0x5f5094
push edx
call fcn.005d9929
add esp, 0xc
mov eax, dword [esp + 0x2c]
cmp eax, 2
jne 0x46380d
movzx eax, byte [0x676ee8]
push eax
call fcn.005daff5
add esp, 4
test eax, eax
mov eax, 0x677f50
lea edx, [eax + 1]
je 0x4637e2
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4637b4
mov ecx, dword [esp + 0x48]
push ecx
sub eax, edx
mov edx, dword [esp + 0x28]
push edx
push 3
lea eax, [eax + 0x677f50]
push str._c_d__02d
push eax
call fcn.005d9929
add esp, 0x14
jmp 0x463874
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4637e2
mov ecx, dword [esp + 0x48]
push ecx
sub eax, edx
mov edx, dword [esp + 0x28]
push edx
push 3
lea eax, [eax + 0x677f50]
push str._c_d__d
push eax
call fcn.005d9929
add esp, 0x14
jmp 0x463874
cmp eax, 1
jne 0x463874
movzx ecx, byte [0x676ee8]
push ecx
call fcn.005daff5
add esp, 4
test eax, eax
mov eax, 0x677f50
lea edx, [eax + 1]
je 0x463850
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463830
sub eax, edx
mov edx, dword [esp + 0x24]
push edx
push 3
push str._c_02d
lea eax, [eax + 0x677f50]
push eax
jmp 0x46386c
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463850
mov ecx, dword [esp + 0x24]
push ecx
push 3
sub eax, edx
push str._c_d
lea edx, [eax + 0x677f50]
push edx
call fcn.005d9929
add esp, 0x10
mov eax, 0x676ee8
mov edx, eax
jmp 0x463880
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463880
mov edi, 0x677f50
sub eax, edx
dec edi
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x463890
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
lea ebx, [ebx]
mov cl, byte [eax + 0x677f50]
mov byte [eax + 0x676ee8], cl
inc eax
test cl, cl
jne 0x4638b0
jmp 0x4638d2
push 0xf
push 0x676ee8
call fcn.0055a760
add esp, 8
mov edi, dword [esp + 0x14]
mov eax, edi
lea edx, [eax + 1]
jmp 0x4638e0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4638e0
sub eax, edx
mov edx, eax
mov eax, 0x676ee8
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4638f3
mov ecx, dword [esp + 0x58]
sub eax, esi
lea eax, [eax + edx + 0x14]
cmp eax, ecx
jle 0x463927
add eax, 0x64
push eax
push edi
mov dword [esp + 0x60], eax
call fcn.005dbd64
add esp, 8
test eax, eax
je 0x463a87
mov edi, eax
mov dword [esp + 0x14], edi
mov eax, 0x676ee8
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463930
sub eax, edx
dec edi
lea ebx, [ebx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x463940
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x46397e
mov ebp, dword [eax + 8]
mov eax, dword [eax + 0x40]
mov edx, ecx
inc edx
test eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edx
jne 0x4630e0
mov eax, dword [esp + 0x14]
xor ebp, ebp
xor esi, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463990
sub eax, edx
mov ebx, eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4639bd
mov eax, dword [esp + 0x14]
push eax
call fcn.005868a0
add esp, 4
cmp eax, 2
mov dword [esp + 0x58], 1
je 0x4639c5
mov dword [esp + 0x58], 0
test ebx, ebx
jle 0x463a91
lea ecx, [ecx]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x463a0e
mov eax, dword [esp + 0x58]
test eax, eax
je 0x463a0e
mov ecx, dword [esp + 0x14]
push esi
push ecx
call fcn.005867a0
mov edi, eax
add esp, 8
test edi, edi
jle 0x463a0e
mov edx, dword [esp + 0x14]
add edx, esi
push edx
call fcn.00587620
add esp, 4
test eax, eax
jne 0x463a08
inc ebp
lea esi, [esi + edi + 1]
jmp 0x463a35
mov eax, dword [esp + 0x30]
test eax, eax
je 0x463a33
mov eax, dword [esp + 0x18]
push eax
push 0x677f50
call fcn.005dd489
add esp, 8
cmp eax, 1
jne 0x463a33
inc ebp
add esi, 2
jmp 0x463a35
inc ebp
inc esi
cmp esi, ebx
jl 0x4639d0
cmp ebp, 1
jle 0x463a91
mov eax, dword [esp + 0x34]
test eax, eax
je 0x463a6f
mov eax, dword [esp + 0x14]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x463a50
mov ecx, dword [esp + 0x14]
sub eax, edx
push 0xf
add eax, ecx
push 0x5f5094
push eax
call fcn.005d9929
add esp, 0xc
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
push 0
push edx
push eax
call fcn.00422730
add esp, 0xc
test eax, eax
jne 0x463a91
push 0
call fcn.00421dc0
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x463aa2
push eax
call fcn.005d9fa3
add esp, 4
mov eax, dword [esp + 0x5c]
test eax, eax
jl 0x463ab3
push eax
call fcn.005dd2dc
add esp, 4
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x1478]
push esi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret