Function at 0x459dd0
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x5c9f24]
sub esp, 0x70
test eax, eax
je 0x45a982
push ebx
push ebp
push esi
push edi
push 0
lea edx, [esp + 0x74]
call fcn.00562fa0
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x38], ebx
je 0x45a97e
mov eax, dword [ebx + 0x6cc]
test eax, eax
je 0x45a97e
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 + 0xdd0]
mov edx, dword [ebx + 0xdc4]
mov esi, dword [ebx + 0xdcc]
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], esi
and eax, 0x8000
sub eax, 0x8000
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0xdc8]
cmp eax, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x50], ecx
jne 0x459e75
cmp esi, edx
jle 0x45a97e
cmp eax, ecx
jg 0x45a97e
test edx, edx
jl 0x45a97e
test eax, eax
jl 0x45a97e
test esi, esi
jl 0x45a97e
test ecx, ecx
jl 0x45a97e
mov eax, dword [ebx + 0x710]
mov esi, dword [ebx + 0x714]
mov ecx, dword [ebx + 0x6cc]
mov edi, dword [ecx + 0x44]
sub eax, esi
test eax, eax
mov dword [esp + 0x10], edi
jle 0x459ed0
lea ebx, [ebx]
cmp edi, ecx
je 0x459ecc
mov edi, dword [edi + 0x44]
dec eax
test eax, eax
jg 0x459ec0
mov dword [esp + 0x10], edi
test edi, edi
je 0x45a97e
push 0x64
mov dword [esp + 0x5c], 0x64
call fcn.00591118
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
je 0x459f97
mov esi, dword [ebx + 0xa04]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [ebx + 0x6cc]
mov ebp, dword [edi + 8]
mov edx, dword [esp + 0x10]
sub ecx, esi
dec ecx
cmp edi, ebx
je 0x459f86
mov eax, dword [esp + 0x38]
mov edi, dword [eax + 0x76c]
mov edi, edi
sub ecx, esi
cmp edi, 1
je 0x459f35
cmp edi, 2
jne 0x459f37
cmp dword [0x5f1964], 1
jne 0x459f37
sub ecx, esi
mov edx, dword [edx + 0x44]
mov eax, dword [edx + 8]
cmp eax, ebp
mov dword [esp + 0x10], edx
je 0x459f79
cmp edi, 3
mov ebp, eax
je 0x459f59
cmp edi, 2
jne 0x459f71
cmp dword [0x5f1964], edi
jne 0x459f71
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 0x459f7f
cmp edx, ebx
jne 0x459f20
jmp 0x459f86
mov edx, dword [edx + 0x40]
mov dword [esp + 0x10], edx
test edx, edx
jne 0x459fa6
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0059112a
add esp, 4
xor ecx, ecx
call fcn.0041f0a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov edx, dword [esp + 0x10]
mov ebp, dword [edx + 8]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
mov byte [0x5eef00], 0
mov byte [eax], 0
mov ecx, dword [edi + 0x87c]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
xor ebx, ebx
cmp esi, ebx
mov dword [esp + 0x6c], esi
jne 0x459ff4
mov edx, dword [esp + 0x18]
push edx
call fcn.0059112a
add esp, 4
xor ecx, ecx
call fcn.0041f0a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
mov eax, dword [edi + 0x98c]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x68], eax
cmp dword [edi + 0xdd4], ebx
je 0x45a016
mov dword [esp + 0x24], ebx
xor eax, eax
jmp 0x45a037
cmp dword [0x5c00ec], ebx
jne 0x45a02a
cmp dword [edi + 0xa0c], ebx
mov dword [esp + 0x24], ebx
je 0x45a032
mov dword [esp + 0x24], 1
mov eax, dword [0x5f6594]
cmp eax, ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x5c], 0xffffffff
je 0x45a058
mov edx, dword [edi + 0x9fc]
mov ecx, esi
call fcn.0048fb50
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
call fcn.00435dc0
mov ecx, dword [0x5c9d38]
mov dword [esp + 0x1c], eax
call fcn.00435dc0
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x20], ebx
jmp 0x45a0a0
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x20], edx
jg 0x45a86e
mov esi, dword [esp + 0x10]
cmp ebp, dword [esi + 8]
je 0x45a0e6
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
call fcn.00435dc0
mov ecx, dword [0x5c9d38]
mov dword [esp + 0x1c], eax
call fcn.00435dc0
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], ebx
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x60]
cmp edi, eax
jne 0x45a41d
mov ecx, dword [esi]
mov dword [esp + 0x4c], 1
mov edx, 0x5ef2e8
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x45a105
mov eax, 0x5ef2e8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a117
mov ebp, dword [esp + 0x28]
sub eax, edx
mov esi, eax
cmp ebp, esi
jle 0x45a130
mov ebp, esi
mov dword [esp + 0x28], ebp
cmp edi, dword [esp + 0x50]
jne 0x45a1c4
cmp dword [esp + 0x24], ebx
je 0x45a189
mov ebp, dword [esp + 0x14]
xor edi, edi
cmp ebp, esi
jge 0x45a17f
lea ebx, [ebx]
mov edx, ebp
mov ecx, 0x5ef2e8
call fcn.0055a010
cmp eax, 0xffffffff
je 0x45a175
cmp eax, 0xfffffffe
je 0x45a175
lea ecx, [ebp + 0x5ef2e8]
call fcn.0055ac90
test eax, eax
je 0x45a17f
inc ebp
cmp ebp, esi
mov edi, 1
jl 0x45a150
sub ebp, edi
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x28]
cmp dword [esp + 0x30], ebx
mov edi, dword [esp + 0x14]
je 0x45a1ab
push edi
push 0x5ef2e8
call fcn.005946b3
add esp, 8
cmp eax, 1
jne 0x45a1ab
inc edi
mov dword [esp + 0x14], edi
cmp edi, esi
jle 0x45a1b5
mov edi, esi
mov dword [esp + 0x14], edi
mov byte [edi + 0x5ef2e9], 0
mov dword [esp + 0x20], 0xffffffff
cmp dword [esp + 0x24], ebx
je 0x45a1fe
cmp ebp, ebx
jle 0x45a1fe
mov edi, edi
mov edx, ebp
mov ecx, 0x5ef2e8
call fcn.0055a010
cmp eax, 0xffffffff
je 0x45a1f5
cmp eax, 0xfffffffe
je 0x45a1f5
lea ecx, [ebp + 0x5ef2e8]
call fcn.0055ac90
test eax, eax
je 0x45a1fe
dec ebp
cmp ebp, ebx
mov dword [esp + 0x28], ebp
jg 0x45a1d0
cmp dword [esp + 0x30], ebx
je 0x45a220
cmp ebp, ebx
jle 0x45a220
push ebp
push 0x5ef2e8
call fcn.005946b3
add esp, 8
cmp eax, 2
jne 0x45a220
dec ebp
mov dword [esp + 0x28], ebp
lea eax, [ebp + 0x5ef2e8]
mov edx, 0x5eef00
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x45a230
cmp dword [esp + 0x54], ebx
je 0x45a5b9
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x6cc]
mov esi, ecx
cmp esi, eax
je 0x45a266
mov esi, dword [esi + 0x44]
mov edx, dword [esi + 8]
cmp edx, dword [ecx + 8]
je 0x45a254
mov esi, dword [esi + 0x40]
cmp esi, ebx
je 0x45a5b9
mov ecx, dword [esi + 0x1c]
call fcn.00435dc0
mov dword [esp + 0x1c], eax
lea ebx, [ebx]
mov eax, dword [esi]
xor edi, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a287
sub eax, edx
mov ebp, eax
cmp ebp, ebx
jle 0x45a403
lea ebx, [ebx]
cmp esi, dword [esp + 0x10]
jne 0x45a2b0
cmp edi, dword [esp + 0x28]
jge 0x45a403
cmp dword [esp + 0x24], ebx
je 0x45a2d9
mov ecx, dword [esi]
mov edx, edi
call fcn.0055a010
cmp eax, ebx
jg case.0x45a316.4
cmp eax, 0xffffffff
je case.0x45a316.4
cmp eax, 0xfffffffe
je case.0x45a316.4
cmp dword [esp + 0x30], ebx
je 0x45a2fd
mov eax, dword [esi]
push edi
push eax
call fcn.005946b3
add esp, 8
cmp eax, 1
je case.0x45a316.4
cmp eax, 2
je case.0x45a316.4
mov ecx, dword [esi]
movzx eax, byte [ecx + edi]
add eax, 0xfffffffe
cmp eax, 0x1d
ja case.0x45a316.4
movzx edx, byte [eax + 0x45a9a0]
jmp dword [edx*4 + 0x45a988]
mov ecx, dword [esp + 0x3c]
xor eax, eax
cmp ecx, ebx
sete al
mov dword [esp + 0x34], 1
mov dword [esp + 0x3c], eax
jmp case.0x45a316.4
mov eax, dword [esp + 0x40]
xor ecx, ecx
cmp eax, ebx
sete cl
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], ecx
jmp case.0x45a316.4
mov eax, dword [esp + 0x44]
xor edx, edx
cmp eax, ebx
sete dl
mov dword [esp + 0x34], 1
mov dword [esp + 0x44], edx
jmp case.0x45a316.4
mov ecx, dword [0x5c9d38]
call fcn.00435dc0
mov ecx, dword [esi + 0x1c]
push eax
call fcn.00435dc0
mov ecx, dword [esi]
push eax
lea eax, [esp + 0x50]
push eax
add ecx, edi
lea edx, [esp + 0x28]
call fcn.005101c0
mov ecx, dword [esp + 0x2c]
add edi, eax
cmp ecx, ebx
jne 0x45a3c1
cmp eax, ebx
jne 0x45a3b4
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], 1
jmp case.0x45a316.4
xor ecx, ecx
cmp eax, 2
setg cl
inc ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], 1
jmp case.0x45a316.4
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
call fcn.00435dc0
mov ecx, dword [0x5c9d38]
mov dword [esp + 0x1c], eax
call fcn.00435dc0
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
inc edi
cmp edi, ebp
jl 0x45a2a0
cmp esi, dword [esp + 0x10]
je 0x45a5b9
mov esi, dword [esi + 0x40]
cmp esi, ebx
jne 0x45a280
jmp 0x45a5b9
jle 0x45a5b9
mov esi, dword [esp + 0x10]
mov ecx, dword [esi]
mov edx, 0x5ef2e8
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x45a430
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x20], edx
jne 0x45a4f0
mov eax, 0x5ef2e8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a450
sub eax, edx
mov esi, eax
cmp dword [esp + 0x24], ebx
je 0x45a4b1
mov eax, dword [esp + 0x14]
xor edi, edi
cmp eax, esi
jge 0x45a4ad
jmp 0x45a470
mov edx, dword [esp + 0x14]
mov ecx, 0x5ef2e8
call fcn.0055a010
cmp eax, 0xffffffff
je 0x45a49b
cmp eax, 0xfffffffe
je 0x45a49b
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + 0x5ef2e8]
call fcn.0055ac90
test eax, eax
je 0x45a4ad
mov eax, dword [esp + 0x14]
inc eax
cmp eax, esi
mov dword [esp + 0x14], eax
mov edi, 1
jl 0x45a470
sub dword [esp + 0x14], edi
cmp dword [esp + 0x30], ebx
mov edi, dword [esp + 0x14]
je 0x45a4d3
push edi
push 0x5ef2e8
call fcn.005946b3
add esp, 8
cmp eax, 1
jne 0x45a4d3
inc edi
mov dword [esp + 0x14], edi
cmp edi, esi
jle 0x45a4dd
mov edi, esi
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x10]
mov byte [edi + 0x5ef2e9], 0
mov dword [esp + 0x20], 0xffffffff
cmp dword [esp + 0x64], ebx
jne 0x45a573
cmp ebp, dword [esi + 8]
jne 0x45a573
mov ecx, dword [esi + 0x10]
cmp ecx, ebx
jle 0x45a555
cmp byte [0x5ef2e8], 0x20
mov eax, 0x5ef2e8
jne 0x45a522
cmp ecx, ebx
jle 0x45a522
mov dl, byte [eax + 1]
inc eax
dec ecx
cmp dl, 0x20
je 0x45a514
cmp byte [eax], 0
jne 0x45a52c
mov eax, 0x5a5348
mov edx, 0x5eef00
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x45a533
jmp 0x45a5b9
xor eax, eax
jmp 0x45a560
mov cl, byte [eax + 0x5ef2e8]
mov byte [eax + 0x5eef00], cl
inc eax
test cl, cl
jne 0x45a560
jmp 0x45a5b9
mov ax, word [0x5a4be8]
mov cl, byte [0x5a4bea]
mov word [0x5eef00], ax
mov eax, 0x5ef2e8
mov byte [0x5eef02], cl
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x45a592
mov edi, 0x5eef00
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x45a5a3
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 + 0x6f8], eax
jne 0x45a5db
cmp dword [eax + 0x20], 2
jne 0x45a5db
mov byte [0x5eef00], 0
jmp 0x45a84c
mov cl, byte [0x5eef00]
test cl, cl
je 0x45a84c
cmp dword [esp + 0x54], ebx
je 0x45a7b3
cmp dword [esp + 0x4c], ebx
je 0x45a7c2
cmp dword [esp + 0x3c], ebx
mov dword [esp + 0x4c], ebx
mov byte [0x5ef2e8], 0
je 0x45a636
mov eax, 0x5ef2e8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a616
sub eax, edx
push 2
lea eax, [eax + 0x5ef2e8]
push 0x5a4fa8
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp dword [esp + 0x40], ebx
je 0x45a664
mov eax, 0x5ef2e8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a644
sub eax, edx
push 0x1f
lea ecx, [eax + 0x5ef2e8]
push 0x5a4fa8
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp dword [esp + 0x44], ebx
je 0x45a692
mov eax, 0x5ef2e8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a672
sub eax, edx
push 0x16
lea edx, [eax + 0x5ef2e8]
push 0x5a4fa8
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [esp + 0x2c]
cmp eax, 2
jne 0x45a702
movzx eax, byte [0x5eef00]
push eax
call fcn.005920a7
add esp, 4
test eax, eax
mov eax, 0x5ef2e8
lea edx, [eax + 1]
je 0x45a6e6
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a6b7
mov ecx, dword [esp + 0x48]
push ecx
sub eax, edx
mov edx, dword [esp + 0x20]
push edx
push 3
push str._c_d__02d
lea eax, [eax + 0x5ef2e8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
jmp 0x45a766
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a6e6
mov ecx, dword [esp + 0x48]
push ecx
sub eax, edx
mov edx, dword [esp + 0x20]
push edx
push 3
push str._c_d__d
jmp 0x45a6d1
cmp eax, 1
jne 0x45a766
movzx ecx, byte [0x5eef00]
push ecx
call fcn.005920a7
add esp, 4
test eax, eax
mov eax, 0x5ef2e8
lea edx, [eax + 1]
je 0x45a741
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a723
sub eax, edx
mov edx, dword [esp + 0x1c]
push edx
push 3
push str._c_02d
lea eax, [eax + 0x5ef2e8]
push eax
jmp 0x45a75d
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a741
mov ecx, dword [esp + 0x1c]
push ecx
push 3
sub eax, edx
push str._c_d
lea edx, [eax + 0x5ef2e8]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov eax, 0x5eef00
mov edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a770
mov edi, 0x5ef2e8
sub eax, edx
dec edi
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x45a780
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 + 0x5ef2e8]
mov byte [eax + 0x5eef00], cl
inc eax
test cl, cl
jne 0x45a7a0
jmp 0x45a7c2
mov edx, 0xf
mov ecx, 0x5eef00
call fcn.00537560
mov edi, dword [esp + 0x18]
mov eax, edi
lea edx, [eax + 1]
jmp 0x45a7d0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a7d0
sub eax, edx
mov edx, eax
mov eax, 0x5eef00
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a7e3
mov ecx, dword [esp + 0x58]
sub eax, esi
lea eax, [eax + edx + 0x14]
cmp eax, ecx
jle 0x45a817
add eax, 0x64
push eax
push edi
mov dword [esp + 0x60], eax
call fcn.00593194
add esp, 8
cmp eax, ebx
je 0x45a933
mov edi, eax
mov dword [esp + 0x18], edi
mov eax, 0x5eef00
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a820
sub eax, edx
dec edi
lea ebx, [ebx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x45a830
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 + 0x20]
cmp ecx, 0xffffffff
je 0x45a86e
mov ebp, dword [eax + 8]
mov eax, dword [eax + 0x40]
mov edx, ecx
inc edx
cmp eax, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], edx
jne 0x45a0a0
mov eax, dword [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a875
sub eax, edx
mov ebx, eax
xor esi, esi
xor ebp, ebp
test ebx, ebx
jle 0x45a93a
lea esp, [esp]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x45a8c0
mov ecx, dword [esp + 0x18]
mov edx, esi
call fcn.0055a010
mov edi, eax
test edi, edi
jle 0x45a8c0
mov eax, dword [esp + 0x18]
lea ecx, [eax + esi]
call fcn.0055ac90
test eax, eax
jne 0x45a8ba
inc ebp
lea esi, [esi + edi + 1]
jmp 0x45a8e7
mov eax, dword [esp + 0x30]
test eax, eax
je 0x45a8e5
mov ecx, dword [esp + 0x14]
push ecx
push 0x5ef2e8
call fcn.005946b3
add esp, 8
cmp eax, 1
jne 0x45a8e5
inc ebp
add esi, 2
jmp 0x45a8e7
inc ebp
inc esi
cmp esi, ebx
jl 0x45a890
cmp ebp, 1
jle 0x45a93a
mov eax, dword [esp + 0x34]
test eax, eax
je 0x45a920
mov eax, dword [esp + 0x18]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a900
sub eax, edx
mov edx, dword [esp + 0x18]
push 0xf
add eax, edx
push 0x5a4fa8
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
push 0
call fcn.0041fad0
test eax, eax
jne 0x45a93a
xor ecx, ecx
call fcn.0041f0a0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45a94b
push eax
call fcn.0059112a
add esp, 4
mov eax, dword [esp + 0x5c]
test eax, eax
jl 0x45a95c
push eax
call fcn.00594506
add esp, 4
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 0x87c]
push esi
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret