Function at 0x4433b0
Capabilities:
Check for foreground window switch
Check for time delay via gettickcount
Check for unmoving mouse cursor
Log keystrokes
Log keystrokes via polling

Disassembly:
sub esp, 0x6fc
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 1
mov dword [esp + 0x24], 1
mov dword [esp + 0x18], ebx
call dword [sym.imp.GDI32.dll_GdiSetBatchLimit]
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
call edi
push eax
call dword [sym.imp.USER32.dll_GetThreadDesktop]
mov esi, eax
mov eax, dword [esp + 0x710]
mov dword [esp + 0x4c], esi
lea ebp, [eax + 0x39c]
mov dword [eax + 0xebc], 1
call fcn.004459b0
test eax, eax
jne 0x443433
push ebx
call fcn.004458a0
add esp, 4
test eax, eax
jne 0x443433
push esi
call fcn.00445840
add esp, 4
test eax, eax
jne 0x443433
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c954
call fcn.00446e00
add esp, 8
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xd
mov dword [0x486544], ebx
mov dword [0x486550], ebx
mov dword [0x486554], ebx
mov dword [0x486560], ebx
mov dword [0x486564], ebx
mov dword [0x47c240], 0x18
mov dword [0x47c244], 0x100
mov dword [0x47c248], 6
mov dword [0x486568], ebx
mov dword [0x48656c], ebx
mov dword [0x486570], ebx
mov dword [0x486574], ebx
mov dword [0x486578], ebx
mov dword [0x4865b4], ebx
mov dword [0x47c260], 2
mov dword [0x48657c], ebx
mov dword [0x486580], ebx
mov dword [0x4865a0], ebx
mov dword [0x4865a4], ebx
mov dword [0x48650c], ebx
call esi
push 0xe
mov dword [0x4865a8], eax
call esi
mov dword [0x4865ac], eax
mov dword [0x4865b0], ebx
call edi
push 0x7f00
push ebx
mov dword [0x486498], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
mov ecx, dword [esp + 0x710]
mov dword [0x486510], eax
mov eax, dword [ecx + 4]
mov dword [0x4865b8], eax
mov edx, dword [ecx + 0x30]
mov dword [0x4865bc], edx
mov dword [0x4865c0], ebx
call fcn.004255e0
test eax, eax
je 0x443664
mov eax, dword [esp + 0x710]
mov edi, dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [eax + 0x7d4]
lea esi, [eax + 0x7e0]
add ecx, 0x7f
shl ecx, 4
add ecx, eax
push ecx
push esi
call edi
push esi
push 0x486448
call edi
mov eax, dword [esp + 0x710]
xor edi, edi
mov edx, dword [eax + 0x7d4]
shl edx, 7
lea eax, [edx + eax + 0x8b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x443584
mov eax, dword [esp + 0x710]
mov ecx, dword [eax + 0x7d4]
shl ecx, 7
lea edi, [ecx + eax + 0x8b0]
push ebx
push ebx
push edi
push 0x479bf0
call dword [sym.imp.GDI32.dll_CreateDCA]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
cmp eax, ebx
mov dword [0x4864fc], eax
je 0x4435f2
mov ecx, dword [esp + 0x710]
mov dword [0x4865c0], 1
call fcn.004259f0
test eax, eax
jne 0x4435e6
mov edx, dword [0x4864fc]
push 8
push edx
mov dword [0x486448], ebx
mov dword [0x48644c], ebx
call edi
mov dword [0x486450], eax
mov eax, dword [0x4864fc]
push 0xa
push eax
call edi
mov dword [0x486454], eax
cmp dword [0x4864fc], ebx
jne 0x4436f7
push ebx
call dword [sym.imp.USER32.dll_GetWindowDC]
mov ecx, dword [esp + 0x710]
push 1
push ebx
mov dword [0x4864fc], eax
call fcn.00425950
mov ecx, dword [esp + 0x710]
mov dword [esi], ebx
push 8
mov dword [ecx + 0x7e4], ebx
mov edx, dword [0x4864fc]
push edx
call edi
mov ecx, dword [esp + 0x710]
push 0xa
mov dword [ecx + 0x7e8], eax
mov edx, dword [0x4864fc]
push edx
call edi
mov ecx, dword [esp + 0x710]
push esi
mov dword [ecx + 0x7ec], eax
mov eax, dword [ecx + 0x7d4]
add eax, 0x7f
shl eax, 4
add eax, ecx
push eax
call dword [sym.imp.USER32.dll_CopyRect]
jmp 0x4436d2
push ebx
call dword [sym.imp.USER32.dll_GetWindowDC]
cmp eax, ebx
mov dword [0x4864fc], eax
jne 0x443688
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c934
call fcn.00446e00
add esp, 8
mov eax, dword [esp + 0x710]
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 8
lea esi, [eax + 0x7e0]
mov dword [eax + 0x7e4], ebx
mov dword [esi], ebx
mov ecx, dword [0x4864fc]
push ecx
call edi
mov edx, dword [esp + 0x710]
push 0xa
mov dword [edx + 0x7e8], eax
mov eax, dword [0x4864fc]
push eax
call edi
mov ecx, dword [esp + 0x710]
mov dword [ecx + 0x7ec], eax
push esi
push 0x486448
call dword [sym.imp.USER32.dll_CopyRect]
cmp dword [0x4864fc], ebx
jne 0x4436f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c594
jmp 0x44508a
mov esi, dword [esp + 0x710]
mov ecx, esi
call fcn.0041e410
push 1
mov dword [0x47c240], eax
call fcn.00437d80
add esp, 4
test eax, eax
jne 0x443729
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c544
jmp 0x44508a
mov dword [ebp], 0x28
mov word [ebp + 0xc], 1
mov dx, word [0x47c240]
mov word [ebp + 0xe], dx
mov eax, dword [0x486450]
sub eax, dword [0x486448]
mov dword [ebp + 4], eax
mov eax, dword [0x486454]
mov ecx, dword [0x48644c]
mov dword [ebp + 0x10], ebx
sub eax, ecx
xor ecx, ecx
mov cx, word [ebp + 0xe]
mov dword [ebp + 8], eax
imul ecx, dword [ebp + 4]
add ecx, 0x1f
mov dword [ebp + 0x20], ebx
sar ecx, 3
and ecx, 0xfffffffc
mov dword [ebp + 0x24], ebx
imul ecx, eax
mov edx, ecx
mov dword [ebp + 0x14], ecx
mov dword [0x48651c], edx
mov eax, dword [ebp + 8]
mov dword [0x486514], eax
mov eax, dword [0x47c240]
mov ecx, dword [ebp + 4]
cmp eax, 8
mov dword [0x486518], ecx
jg 0x4438ee
mov ecx, esi
call fcn.0041e3f0
mov edx, dword [0x4864fc]
mov esi, eax
push 0xc
push edx
mov dword [esp + 0x20], esi
call edi
mov edi, dword [0x47c240]
cmp esi, ebx
jne 0x443cbd
cmp eax, edi
jg 0x443cbd
mov eax, dword [0x4864fc]
push 0x408
mov dword [esp + 0x14], eax
call fcn.004520a2
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x443849
mov ebx, dword [esp + 0x10]
lea edi, [esi + 4]
push edi
push 0x100
push 0
push ebx
mov word [esi], 0x300
mov word [esi + 2], 0x100
call dword [sym.imp.GDI32.dll_GetSystemPaletteEntries]
test eax, eax
jne 0x443868
mov ecx, ebx
push ecx
call dword [sym.imp.GDI32.dll_CreateHalftonePalette]
mov ebx, eax
test ebx, ebx
je 0x443849
push edi
push 0x100
push 0
push ebx
call dword [sym.imp.GDI32.dll_GetPaletteEntries]
test eax, eax
jne 0x443864
push esi
call fcn.00451fb9
add esp, 4
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c90c
call fcn.00446e00
add esp, 8
xor ebx, ebx
jmp 0x445092
mov ebx, dword [esp + 0x10]
test eax, eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], eax
jbe 0x443898
lea ecx, [ebp + 0x29]
lea edx, [esi + 5]
mov edi, eax
mov al, byte [edx - 1]
add edx, 4
mov byte [ecx + 1], al
mov al, byte [edx - 4]
mov byte [ecx], al
mov al, byte [edx - 3]
mov byte [ecx - 1], al
mov byte [ecx + 2], 0
add ecx, 4
dec edi
jne 0x44387a
push esi
call dword [sym.imp.GDI32.dll_CreatePalette]
mov edi, eax
test edi, edi
jne 0x4438b0
push esi
call fcn.00451fb9
add esp, 4
jmp 0x443849
push 0
push edi
push ebx
call dword [sym.imp.GDI32.dll_SelectPalette]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x4438d1
push esi
call fcn.00451fb9
add esp, 4
push edi
jmp 0x443843
push ebx
call dword [sym.imp.GDI32.dll_RealizePalette]
push esi
call fcn.00451fb9
mov ecx, dword [esp + 0x1c]
add esp, 4
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
xor ebx, ebx
mov ecx, dword [esp + 0x710]
call fcn.0041e3d0
mov ecx, eax
cmp ecx, 1
jge 0x443906
mov ecx, 0x14
mov esi, dword [0x486514]
mov eax, esi
cdq
idiv ecx
test edx, edx
jle 0x44391f
mov eax, esi
dec ecx
cdq
idiv ecx
test edx, edx
jg 0x443915
mov esi, dword [esp + 0x710]
push ecx
mov ecx, esi
call fcn.0041e500
mov ecx, esi
call fcn.0041e3e0
mov ecx, eax
mov eax, dword [0x486564]
cmp eax, ecx
mov dword [0x486520], ecx
jl 0x44394c
mov dword [0x486564], ebx
mov esi, dword [0x486514]
cmp ecx, ebx
jle 0x443960
mov eax, esi
cdq
idiv ecx
mov dword [0x48652c], eax
xor eax, eax
mov ax, word [ebp + 0xe]
imul eax, dword [ebp + 4]
add eax, 0x1f
sar eax, 3
and al, 0xfc
imul eax, esi
cdq
idiv ecx
xor edx, edx
shl ecx, 6
push ecx
mov dword [0x486530], eax
mov dx, word [ebp + 0xe]
imul edx, dword [ebp + 4]
add edx, 0x1f
xor eax, eax
sar edx, 3
and edx, 0xfffffffc
mov dword [0x486524], edx
mov ax, word [ebp + 0xe]
mov dword [0x486528], eax
mov dword [0x486550], ecx
call fcn.004520a2
add esp, 4
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x445092
mov ecx, dword [0x486550]
mov edi, dword [esp + 0x14]
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov esi, ebp
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x486518]
mov ecx, 0x10b
lea edi, [esp + 0xd8]
mov dword [0x486574], eax
mov dword [0x486578], ebx
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0xe6]
mov ecx, dword [0x48652c]
and edx, 0xffff
mov dword [esp + 0xe0], ecx
imul edx, eax
add edx, 0x1f
mov dword [esp + 0xdc], eax
sar edx, 3
and edx, 0xfffffffc
mov dword [esp + 0xd8], 0x28
imul edx, ecx
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0x710]
mov dword [edx + 0xec0], eax
mov dword [edx + 0xec4], ecx
mov ecx, dword [0x486520]
xor eax, eax
cmp ecx, ebx
mov dword [0x486570], eax
jle 0x443ef2
mov edi, dword [sym.imp.GDI32.dll_CreateDIBSection]
mov ebx, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, dword [sym.imp.GDI32.dll_PatBlt]
mov ecx, dword [esp + 0x14]
push 0
shl eax, 6
push 0
mov dword [eax + ecx + 4], 0
mov eax, dword [0x486570]
mov edx, dword [0x486578]
shl eax, 6
mov dword [eax + ecx + 8], edx
mov eax, dword [0x486570]
shl eax, 6
add eax, ecx
mov edx, dword [eax + 4]
add edx, dword [0x486574]
mov dword [eax + 0xc], edx
mov eax, dword [0x486570]
shl eax, 6
add eax, ecx
mov edx, dword [eax + 8]
add edx, dword [0x48652c]
mov dword [eax + 0x10], edx
mov eax, dword [0x486570]
mov edx, dword [esp + 0xe4]
shl eax, 6
mov dword [eax + ecx + 0x14], edx
mov eax, dword [0x486570]
mov edx, dword [esp + 0xe8]
shl eax, 6
mov dword [eax + ecx + 0x18], edx
mov eax, dword [0x486570]
mov edx, dword [esp + 0xf4]
shl eax, 6
mov dword [eax + ecx + 0x1c], edx
mov eax, dword [0x486570]
shl eax, 6
lea edx, [esp + 0xe0]
lea ecx, [eax + ecx + 0x20]
mov eax, dword [0x4864fc]
push ecx
push 0
push edx
push eax
call edi
mov edx, dword [0x486570]
mov ecx, dword [esp + 0x14]
shl edx, 6
mov dword [edx + ecx + 0x24], eax
mov eax, dword [0x486570]
shl eax, 6
mov edx, dword [eax + ecx + 0x24]
test edx, edx
je 0x443e89
mov ecx, dword [0x4864fc]
push ecx
call ebx
mov edx, dword [0x486570]
mov ecx, dword [esp + 0x14]
shl edx, 6
mov dword [edx + ecx + 0x2c], eax
mov eax, dword [0x486570]
shl eax, 6
add eax, ecx
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x443eac
mov edx, dword [eax + 0x24]
push edx
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [0x486570]
mov ecx, dword [esp + 0x14]
shl edx, 6
mov dword [edx + ecx + 0x28], eax
mov eax, dword [0x486570]
shl eax, 6
add eax, ecx
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x443eba
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
mov eax, dword [eax + 0x2c]
push 0x42
push ecx
push edx
push 0
push 0
push eax
call esi
mov ecx, dword [0x486570]
mov edx, dword [esp + 0x14]
shl ecx, 6
push 0
push 0
lea eax, [ecx + edx + 0x30]
mov edx, dword [0x4864fc]
push eax
lea ecx, [esp + 0xe4]
push 0
push ecx
push edx
call edi
mov edx, dword [0x486570]
mov ecx, dword [esp + 0x14]
shl edx, 6
mov dword [edx + ecx + 0x38], eax
mov eax, dword [0x486570]
shl eax, 6
mov edx, dword [eax + ecx + 0x38]
test edx, edx
je 0x443ec8
mov ecx, dword [0x4864fc]
push ecx
call ebx
mov edx, dword [0x486570]
mov ecx, dword [esp + 0x14]
shl edx, 6
mov dword [edx + ecx + 0x34], eax
mov eax, dword [0x486570]
shl eax, 6
add eax, ecx
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x443ed6
mov edx, dword [eax + 0x38]
push edx
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [0x486570]
mov ecx, dword [esp + 0x14]
shl edx, 6
mov dword [edx + ecx + 0x3c], eax
mov eax, dword [0x486570]
shl eax, 6
add eax, ecx
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x443ee4
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
mov eax, dword [eax + 0x34]
push 0x42
push ecx
push edx
push 0
push 0
push eax
call esi
mov ecx, dword [0x48652c]
mov edx, dword [0x486578]
mov eax, dword [0x486570]
add edx, ecx
mov ecx, dword [0x486520]
inc eax
cmp eax, ecx
mov dword [0x486578], edx
mov dword [0x486570], eax
jl 0x443a75
xor ebx, ebx
jmp 0x443ef2
mov edx, dword [0x4864fc]
push 0x428
mov dword [esp + 0x28], edx
call fcn.004520a2
mov esi, eax
add esp, 4
cmp esi, ebx
jne 0x443ce1
xor eax, eax
jmp 0x443e6b
mov eax, edi
mov word [esi], 0x300
dec eax
je 0x443dc9
sub eax, 3
je 0x443d66
sub eax, 4
je 0x443d00
xor eax, eax
jmp 0x443e6b
mov eax, 0x100
xor edi, edi
mov dword [ebp + 0x20], eax
mov word [esi + 2], ax
lea eax, [ebp + 0x29]
xor ecx, ecx
cmp dword [esp + 0x18], ebx
je 0x443d32
mov dl, byte [ecx + 0x47bf40]
mov byte [eax + 1], dl
mov dl, byte [ecx + 0x47bf41]
mov byte [eax], dl
mov dl, byte [ecx + 0x47bf42]
jmp 0x443d49
mov dl, byte [ecx + 0x47bbe0]
mov byte [eax + 1], dl
mov dl, byte [ecx + 0x47bbe1]
mov byte [eax], dl
mov dl, byte [ecx + 0x47bbe2]
mov byte [eax - 1], dl
xor edx, edx
mov byte [eax + 2], 0
mov dx, word [esi + 2]
inc edi
add ecx, 3
add eax, 4
cmp edi, edx
jl 0x443d13
jmp 0x443e0a
mov eax, 0x10
xor edi, edi
mov dword [ebp + 0x20], eax
mov word [esi + 2], ax
lea eax, [ebp + 0x29]
xor ecx, ecx
cmp dword [esp + 0x18], ebx
je 0x443d98
mov dl, byte [ecx + 0x47bf10]
mov byte [eax + 1], dl
mov dl, byte [ecx + 0x47bf11]
mov byte [eax], dl
mov dl, byte [ecx + 0x47bf12]
jmp 0x443daf
mov dl, byte [ecx + 0x47bee0]
mov byte [eax + 1], dl
mov dl, byte [ecx + 0x47bee1]
mov byte [eax], dl
mov dl, byte [ecx + 0x47bee2]
mov byte [eax - 1], dl
xor edx, edx
mov byte [eax + 2], 0
mov dx, word [esi + 2]
inc edi
add ecx, 3
add eax, 4
cmp edi, edx
jl 0x443d79
jmp 0x443e0a
mov eax, 2
xor edi, edi
mov word [esi + 2], ax
mov dword [ebp + 0x20], eax
cmp word [esi + 2], bx
jbe 0x443e0a
mov ecx, 0x47bbd9
lea eax, [ebp + 0x29]
mov dl, byte [ecx - 1]
inc edi
mov byte [eax + 1], dl
mov dl, byte [ecx]
mov byte [eax], dl
mov dl, byte [ecx + 1]
mov byte [eax - 1], dl
xor edx, edx
mov byte [eax + 2], 0
mov dx, word [esi + 2]
add ecx, 3
add eax, 4
cmp edi, edx
jl 0x443de5
push esi
call dword [sym.imp.GDI32.dll_CreatePalette]
mov edi, eax
cmp edi, ebx
jne 0x443e24
push esi
call fcn.00451fb9
add esp, 4
xor eax, eax
jmp 0x443e6b
mov eax, dword [esp + 0x24]
push 0
push edi
push eax
call dword [sym.imp.GDI32.dll_SelectPalette]
mov ebx, eax
test ebx, ebx
jne 0x443e4c
push esi
call fcn.00451fb9
add esp, 4
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
jmp 0x443e69
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.GDI32.dll_RealizePalette]
push esi
call fcn.00451fb9
add esp, 4
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, edi
xor ebx, ebx
cmp eax, ebx
mov dword [0x486560], eax
jne 0x4438ee
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c8e4
jmp 0x44508a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c88c
call fcn.00446e00
add esp, 8
mov dword [esp + 0x20], 0xfa0
xor ebx, ebx
jmp 0x445092
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c834
jmp 0x443e95
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c7e0
jmp 0x443e95
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c788
jmp 0x443e95
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c730
jmp 0x443e95
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c6dc
jmp 0x443e95
xor edi, edi
cmp ecx, ebx
jle 0x443f70
mov edx, dword [esp + 0x14]
lea esi, [edx + 0x2c]
mov eax, dword [esi - 0x24]
mov edx, dword [0x48644c]
mov ecx, dword [esi - 0x28]
add eax, edx
mov edx, dword [0x4864fc]
push 0xcc0020
push eax
mov eax, dword [0x486448]
add ecx, eax
mov eax, dword [esi - 0x14]
push ecx
mov ecx, dword [esi - 0x18]
push edx
mov edx, dword [esi]
push eax
push ecx
push ebx
push ebx
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x444043
mov eax, dword [esi]
mov ecx, dword [esi - 0x14]
mov edx, dword [esi - 0x18]
push 0x660046
push ebx
push ebx
push eax
mov eax, dword [esi + 8]
push ecx
push edx
push ebx
push ebx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x444064
mov eax, dword [0x486520]
inc edi
add esi, 0x40
cmp edi, eax
jl 0x443eff
mov esi, dword [esp + 0x710]
push ebp
mov ecx, esi
call fcn.004203d0
push 0x47c250
call dword [sym.imp.USER32.dll_GetCursorPos]
push 1
mov ecx, esi
call fcn.004203f0
mov ecx, esi
call fcn.00421ce0
push ebx
mov ecx, esi
mov dword [0x47c248], eax
call fcn.0041ef80
mov eax, dword [0x485b08]
mov dword [0x486540], ebx
cmp eax, ebx
je 0x445092
cmp dword [0x485b0c], ebx
jne 0x445092
mov ecx, dword [esp + 0x710]
call fcn.004204d0
test eax, eax
jbe 0x445092
mov ecx, dword [esp + 0x710]
call fcn.0041f2b0
test eax, eax
jne 0x445092
mov ecx, dword [0x486540]
mov eax, dword [0x4792ac]
cmp ecx, eax
je 0x44407c
call fcn.004457a0
test eax, eax
jne 0x444072
call fcn.004459b0
test eax, eax
jne 0x44407c
push ebx
call fcn.004458a0
add esp, 4
test eax, eax
jne 0x44407c
mov edx, dword [esp + 0x4c]
push edx
call fcn.00445840
add esp, 4
test eax, eax
jne 0x44407c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c6b8
call fcn.00446e00
add esp, 8
jmp 0x44407c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c668
call fcn.00446e00
add esp, 8
mov dword [esp + 0x20], 0xfa0
jmp 0x445092
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c618
jmp 0x44404f
mov eax, dword [0x4792ac]
mov dword [0x486540], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x710]
mov dword [0x486580], eax
call fcn.0041e4e0
cmp eax, 0xffffffff
je 0x4440b6
mov ecx, dword [0x48657c]
cmp ecx, ebx
jbe 0x4440b6
sub ecx, dword [0x486580]
add ecx, eax
cmp eax, ecx
jl 0x4440b0
mov eax, ecx
cmp eax, ebx
jge 0x4440c4
jmp 0x4440bf
cmp eax, ebx
jge 0x4440c4
cmp eax, 0xffffffff
je 0x4440c4
mov eax, 4
mov ecx, dword [0x47c260]
push eax
push ebx
push 0x4865b8
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, ebx
mov dword [0x4865b4], eax
je 0x445092
cmp eax, 0x80
je 0x445092
cmp eax, 1
je 0x445092
cmp eax, 0x81
je 0x445092
cmp eax, 0xffffffff
je 0x445092
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [esp + 0x710]
mov dword [0x48657c], eax
mov ecx, esi
call fcn.0041ea20
test eax, eax
je 0x444391
cmp dword [0x4865b0], ebx
je 0x444149
push 0x486458
mov dword [0x4865b0], ebx
call fcn.0044c0a0
add esp, 4
mov ecx, esi
call fcn.0041e3e0
mov ecx, eax
mov eax, dword [0x486564]
cmp eax, ecx
mov dword [0x486520], ecx
jl 0x444167
mov dword [0x486564], ebx
cmp ecx, ebx
jle 0x444178
mov eax, dword [0x486514]
cdq
idiv ecx
mov dword [0x48652c], eax
mov eax, dword [0x486530]
mov ecx, eax
cmp eax, ebx
mov dword [0x486550], ecx
je 0x445048
jl 0x445048
mov edx, dword [0x486554]
cmp eax, edx
mov eax, dword [0x486508]
jle 0x4441c2
cmp eax, ebx
je 0x4441bc
push eax
call fcn.00451fb9
mov ecx, dword [0x486550]
add esp, 4
xor eax, eax
mov dword [0x486508], eax
mov dword [0x486554], ecx
cmp dword [0x47c248], ebx
je 0x4441f4
cmp eax, ebx
jne 0x4441e4
mov edx, dword [0x47c244]
add edx, ecx
push edx
call fcn.004520a2
add esp, 4
mov dword [0x486508], eax
cmp dword [0x47c248], ebx
je 0x4441f4
cmp eax, ebx
je 0x44503a
push ebx
mov ecx, esi
call fcn.004212c0
mov ecx, dword [0x486520]
mov dword [esp + 0x18], ebx
cmp ecx, ebx
mov dword [esp + 0x1c], ebx
jle 0x444377
mov eax, dword [esp + 0x14]
lea ebp, [eax + 0x1c]
mov eax, dword [ebp]
xor edx, edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], eax
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x7c], edx
cmp ecx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], edx
jl 0x444262
mov dword [esp + 0x88], 1
mov ebx, dword [ebp + 4]
lea ecx, [ebp - 0x18]
lea edx, [esp + 0x8c]
push ecx
push edx
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [0x47c248]
test ecx, ecx
je 0x444337
mov eax, dword [ebp]
mov edx, dword [0x47c244]
mov esi, dword [ebp + 0x14]
add edx, eax
mov dword [esp + 0x10], edx
mov edx, dword [0x4865b0]
test edx, edx
mov dword [0x486550], eax
jne 0x4442eb
push ecx
mov ecx, dword [0x486508]
push eax
lea eax, [esp + 0x18]
push esi
push eax
push ecx
push 0x486458
call fcn.0044bfc0
add esp, 0x18
test eax, eax
je 0x4442d6
push eax
push 0x47c468
call fcn.00446e00
add esp, 8
jmp 0x44434b
mov eax, dword [0x486550]
mov ecx, dword [0x47c248]
mov dword [0x4865b0], 1
push ecx
push eax
mov eax, dword [0x486508]
lea edx, [esp + 0x18]
push esi
push edx
push eax
push 0x486458
call fcn.0044c020
add esp, 0x18
test eax, eax
jne 0x444367
mov ecx, dword [esp + 0x10]
mov esi, dword [ebp + 4]
mov edi, dword [ebp + 0x14]
mov ebx, dword [0x486508]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp]
mov edx, ecx
mov dword [esp + 0x6c], 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x710]
push 1
lea eax, [esp + 0x64]
push ebx
push eax
call fcn.004215c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x486520]
inc eax
add ebp, 0x40
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x444219
jmp 0x444375
push eax
push 0x479c10
call fcn.00446e00
add esp, 8
xor ebx, ebx
mov eax, 0xffffff9c
mov dword [0x48650c], ebx
mov dword [0x47c258], eax
mov dword [0x47c25c], eax
jmp 0x445026
mov eax, dword [0x486530]
mov ecx, eax
cmp eax, ebx
mov dword [0x486550], ecx
je 0x44507e
jl 0x44507e
mov edx, dword [0x486554]
cmp eax, edx
mov eax, dword [0x486508]
jle 0x4443db
cmp eax, ebx
je 0x4443d5
push eax
call fcn.00451fb9
mov ecx, dword [0x486550]
add esp, 4
xor eax, eax
mov dword [0x486508], eax
mov dword [0x486554], ecx
cmp dword [0x47c248], ebx
je 0x44440d
cmp eax, ebx
jne 0x4443fd
mov edx, dword [0x47c244]
add edx, ecx
push edx
call fcn.004520a2
add esp, 4
mov dword [0x486508], eax
cmp dword [0x47c248], ebx
je 0x44440d
cmp eax, ebx
je 0x445056
push 0x486598
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
jne 0x444434
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x444434
call fcn.004457a0
test eax, eax
jne 0x445064
mov ecx, esi
call fcn.0041e920
test eax, eax
mov ecx, esi
je 0x44448b
call fcn.0041e980
mov ecx, dword [0x48652c]
cmp eax, ecx
jge 0x44445d
xor ecx, ecx
mov dword [0x486564], ecx
jmp 0x444592
cdq
idiv ecx
cmp eax, ebx
jge 0x444471
xor ecx, ecx
mov dword [0x486564], ecx
jmp 0x444592
mov ecx, dword [0x486520]
cmp eax, ecx
jl 0x44447e
lea eax, [ecx - 1]
mov ecx, eax
mov dword [0x486564], ecx
jmp 0x444592
call fcn.0041e9d0
test eax, eax
je 0x444585
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
cmp esi, ebx
je 0x444585
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x444585
push ebx
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov edi, eax
mov eax, dword [0x486498]
cmp edi, eax
je 0x444585
push 1
push edi
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
je 0x444585
push 0x486490
xor ebp, ebp
call dword [sym.imp.USER32.dll_GetCaretPos]
test eax, eax
je 0x444512
cmp dword [0x486490], ebx
je 0x444512
cmp dword [0x486494], ebx
je 0x444512
push 0x486490
push esi
call dword [sym.imp.USER32.dll_ClientToScreen]
mov ebp, 1
mov eax, dword [0x486498]
push ebx
push edi
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
cmp ebp, ebx
je 0x444585
mov ecx, dword [0x486490]
mov eax, dword [0x47c250]
cmp eax, ecx
mov eax, dword [0x486494]
jne 0x444540
cmp dword [0x47c254], eax
je 0x444585
mov dword [0x47c250], ecx
mov ecx, dword [0x48652c]
cmp eax, ecx
mov dword [0x47c254], eax
jge 0x444559
xor ecx, ecx
jmp 0x444573
cdq
idiv ecx
cmp eax, ebx
jge 0x444564
xor ecx, ecx
jmp 0x444573
mov ecx, dword [0x486520]
cmp eax, ecx
jl 0x444571
lea eax, [ecx - 1]
mov ecx, eax
mov dword [0x486564], ecx
mov dword [0x4865a0], 1
jmp 0x44458b
mov ecx, dword [0x486564]
mov esi, dword [esp + 0x710]
cmp dword [0x4864f8], ebx
je 0x4445a1
mov eax, 0xcc0020
jmp 0x4445bc
mov ecx, esi
call fcn.0041e460
mov ecx, dword [0x486564]
neg eax
sbb eax, eax
and eax, 0x40000000
add eax, 0xcc0020
mov edx, dword [esp + 0x14]
mov edi, dword [0x486448]
shl ecx, 6
mov dword [0x486544], ebx
push eax
mov eax, dword [ecx + edx + 8]
lea ebp, [ecx + edx]
mov edx, dword [0x48644c]
mov ecx, dword [ebp + 4]
add eax, edx
mov edx, dword [0x4864fc]
add ecx, edi
push eax
mov eax, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
mov edx, dword [ebp + 0x2c]
push eax
push ecx
push ebx
push ebx
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x44465b
mov dword [ebp], ebx
mov ecx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x30]
mov esi, dword [ebp + 0x20]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x444651
mov dword [ebp], 1
mov dword [0x486544], 1
mov dword [0x48656c], ebx
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
push 0x660046
push ebx
push ebx
push ecx
mov ecx, dword [ebp + 0x34]
push edx
push eax
push ebx
push ebx
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
cmp dword [0x486544], ebx
jne 0x444679
jmp 0x444673
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x444673
call fcn.004457a0
test eax, eax
jne 0x445064
inc dword [0x48656c]
cmp dword [0x48656c], 0xc8
jle 0x444854
cmp dword [0x485b08], ebx
je 0x445092
cmp dword [0x485b0c], ebx
jne 0x445092
cmp dword [0x486614], ebx
jne 0x444819
cmp dword [0x48661c], ebx
jne 0x444819
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
cmp esi, ebx
je 0x4446d0
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x44470c
lea edx, [esp + 0x58]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x444819
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
push eax
push ecx
call dword [sym.imp.USER32.dll_WindowFromPoint]
mov esi, eax
cmp esi, ebx
je 0x444819
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x444819
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x444819
lea edx, [esp + 0x504]
push 0x104
push edx
push esi
call dword [sym.imp.USER32.dll_GetClassNameA]
test eax, eax
je 0x444819
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
lea eax, [esp + 0x504]
push 0x479c0c
push eax
call esi
test eax, eax
je 0x444767
lea ecx, [esp + 0x504]
push 0x479bf8
push ecx
call esi
test eax, eax
jne 0x444819
call fcn.004455e0
push ebx
push ebx
test eax, eax
push ebx
je 0x4447c0
mov edi, dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0x12
call edi
mov esi, dword [sym.imp.USER32.dll_keybd_event]
push eax
push 0x12
call esi
push ebx
push ebx
push ebx
push 0xd
call edi
push eax
push 0xd
call esi
push ebx
push 2
push ebx
push 0xd
call edi
push eax
push 0xd
call esi
push ebx
push 2
push ebx
push 0x12
call edi
push eax
push 0x12
call esi
push ebx
mov dword [0x48656c], ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x44502c
mov edi, dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0xa5
call edi
mov esi, dword [sym.imp.USER32.dll_keybd_event]
push eax
push 0xa5
call esi
push ebx
push ebx
push ebx
push 0xd
call edi
push eax
push 0xd
call esi
push ebx
push 2
push ebx
push 0xd
call edi
push eax
push 0xd
call esi
push ebx
push 2
push ebx
push 0xa5
call edi
push eax
push 0xa5
call esi
push ebx
mov dword [0x48656c], ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x44502c
call fcn.004459b0
test eax, eax
jne 0x444854
push ebx
call fcn.004458a0
add esp, 4
test eax, eax
jne 0x444854
mov edx, dword [esp + 0x4c]
push edx
call fcn.00445840
add esp, 4
test eax, eax
jne 0x444854
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c440
call fcn.00446e00
add esp, 8
cmp dword [0x48656c], 0xfa
jle 0x444866
mov dword [0x48656c], ebx
cmp dword [esp + 0x18], ebx
je 0x4449e1
cmp dword [0x486544], ebx
je 0x4449e1
cmp dword [0x485b08], ebx
je 0x445092
cmp dword [0x485b0c], ebx
jne 0x445092
mov edi, dword [0x486564]
mov eax, dword [esp + 0x14]
shl edi, 6
add edi, eax
mov dword [0x48656c], ebx
cmp dword [edi], ebx
je 0x4449e1
mov ecx, dword [edi + 0x1c]
lea eax, [edi + 4]
mov dword [esp + 0xa4], ecx
mov edx, dword [edi + 0x1c]
lea ecx, [esp + 0xc8]
push eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov ebp, dword [edi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [0x47c248]
cmp ecx, ebx
je 0x4449cb
mov edx, dword [0x47c244]
mov ebp, 1
mov dword [esp + 0xb8], ebp
mov eax, dword [edi + 0x1c]
mov esi, dword [edi + 0x30]
add edx, eax
mov dword [esp + 0x10], edx
mov edx, dword [0x4865b0]
cmp edx, ebx
mov dword [0x486550], eax
jne 0x444975
push ecx
mov ecx, dword [0x486508]
push eax
lea eax, [esp + 0x18]
push esi
push eax
push ecx
push 0x486458
call fcn.0044bfc0
add esp, 0x18
cmp eax, ebx
je 0x444964
push eax
push 0x47c468
call fcn.00446e00
add esp, 8
jmp 0x44502c
mov eax, dword [0x486550]
mov ecx, dword [0x47c248]
mov dword [0x4865b0], ebp
push ecx
push eax
mov eax, dword [0x486508]
lea edx, [esp + 0x18]
push esi
push edx
push eax
push 0x486458
call fcn.0044c020
add esp, 0x18
cmp eax, ebx
jne 0x445076
mov ecx, dword [esp + 0x10]
mov ebp, dword [0x486508]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa8], 1
mov ecx, dword [edi + 0x1c]
mov esi, dword [edi + 0x20]
mov edi, dword [edi + 0x30]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x710]
push ebx
lea eax, [esp + 0xa0]
push ebp
push eax
call fcn.004215c0
mov esi, dword [esp + 0x710]
mov ecx, esi
call fcn.0041e520
test eax, eax
je 0x444a11
mov ecx, dword [0x486598]
mov eax, dword [0x47c258]
cmp ecx, eax
jne 0x444a1d
mov edx, dword [0x48659c]
mov eax, dword [0x47c25c]
cmp edx, eax
jne 0x444a1d
cmp dword [0x4865a0], ebx
je 0x445011
cmp dword [0x485b08], ebx
je 0x445092
cmp dword [0x485b0c], ebx
jne 0x445092
push 0x486598
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
jne 0x444a5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x444a5c
call fcn.004457a0
test eax, eax
jne 0x445064
mov eax, dword [0x486598]
mov edx, dword [0x4865a8]
mov ecx, dword [0x48659c]
mov dword [esp + 0x28], eax
add eax, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov eax, dword [0x4865ac]
add ecx, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x10], edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
jne 0x444fb0
push 4
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
jne 0x444fb0
push 2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
jne 0x444fb0
mov eax, dword [0x48659c]
mov ecx, dword [0x486598]
push eax
push ecx
call dword [sym.imp.USER32.dll_WindowFromPoint]
mov edi, eax
cmp edi, ebx
je 0x444b89
push edi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x444b89
push ebx
push edi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov esi, eax
mov eax, dword [0x486498]
cmp esi, eax
je 0x444b89
lea edx, [esp + 0x608]
push 0x104
push edx
push edi
call dword [sym.imp.USER32.dll_GetClassNameA]
test eax, eax
je 0x444b51
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
lea eax, [esp + 0x608]
push 0x479c0c
push eax
call edi
test eax, eax
je 0x444b89
lea ecx, [esp + 0x608]
push 0x479bf8
push ecx
call edi
test eax, eax
je 0x444b89
mov eax, dword [0x486498]
cmp esi, eax
je 0x444b7f
mov ebp, dword [sym.imp.USER32.dll_AttachThreadInput]
push 1
push esi
push eax
call ebp
test eax, eax
je 0x444b7f
call dword [sym.imp.USER32.dll_GetCursor]
mov edx, dword [0x486498]
push ebx
push esi
push edx
mov edi, eax
call ebp
jmp 0x444b85
mov edi, dword [0x486510]
cmp edi, ebx
jne 0x444b8f
mov edi, dword [0x486510]
cmp edi, ebx
mov dword [esp + 0x1c], edi
je 0x444fb0
mov eax, dword [0x48650c]
cmp eax, ebx
je 0x444bae
mov ecx, edi
cmp eax, ecx
je 0x444fb0
xor eax, eax
mov ecx, 6
mov dword [esp + 0x38], eax
mov edi, 0x4864c4
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x44], eax
rep stosd dword es:[edi], eax
mov ecx, 6
mov edi, 0x4864dc
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x48], eax
push ecx
push edx
call dword [sym.imp.USER32.dll_GetIconInfo]
test eax, eax
je 0x444fb0
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
cmp ecx, ebx
jne 0x444c0c
cmp eax, ebx
je 0x444fb0
mov edx, dword [esp + 0x3c]
cmp eax, ebx
mov dword [0x4864bc], edx
mov edx, dword [esp + 0x40]
mov dword [0x4864c0], edx
je 0x444c42
push 0x4864c4
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
je 0x444fb0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
je 0x444c60
push 0x4864dc
push 0x18
push ecx
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
je 0x444fb0
mov eax, dword [esp + 0x44]
cmp dword [0x4864c8], ebx
jne 0x444c74
cmp dword [0x4864e0], ebx
je 0x444fb0
lea ecx, [esp + 0x54]
mov dword [esp + 0x54], ebx
push ecx
push eax
mov dword [esp + 0x58], ebx
call fcn.00445280
mov esi, eax
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x58]
push edx
push eax
call fcn.00445280
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov edi, eax
mov eax, dword [0x486538]
lea ebp, [edx + ecx]
add esp, 0x10
cmp eax, ebp
ja 0x444ce3
mov eax, dword [0x486534]
cmp eax, ebx
je 0x444cc9
push eax
call fcn.00451fb9
add esp, 4
mov dword [0x486534], ebx
mov dword [0x486538], ebp
add ebp, 0x80
push ebp
call fcn.004520a2
add esp, 4
mov dword [0x486534], eax
cmp dword [0x486534], ebx
jne 0x444cf6
mov dword [0x486538], ebx
jmp 0x444e73
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x444db0
cmp dword [0x4864c8], ebx
jle 0x444db0
cmp dword [0x4864cc], ebx
jle 0x444db0
cmp esi, ebx
je 0x444db0
mov ebp, dword [esi + 8]
push ebx
push esi
push ebx
push ebp
push ebx
push eax
mov eax, dword [esp + 0x28]
push eax
call dword [sym.imp.GDI32.dll_GetDIBits]
test eax, eax
je 0x444da9
cmp dword [esi + 0x14], ebx
jne 0x444d59
xor ecx, ecx
mov cx, word [esi + 0xe]
imul ecx, dword [esi + 4]
add ecx, 0x1f
sar ecx, 3
and ecx, 0xfffffffc
imul ecx, dword [esi + 8]
mov dword [esi + 0x14], ecx
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x14]
neg edx
mov dword [esi + 8], edx
mov ecx, dword [esp + 0x54]
cmp eax, ecx
ja 0x444da9
mov ecx, dword [0x486534]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x10]
push ebx
push esi
push ecx
push ebp
push ebx
push edx
push eax
call dword [sym.imp.GDI32.dll_GetDIBits]
test eax, eax
je 0x444da9
mov eax, dword [esi + 0x14]
mov dword [esp + 0x18], 1
mov dword [0x4864a8], eax
mov dword [0x4864a4], eax
mov dword [0x4864f4], eax
mov dword [esp + 0x24], eax
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [esp + 0x48]
cmp eax, ebx
je 0x444e73
cmp dword [0x4864e0], ebx
jle 0x444e73
cmp dword [0x4864e4], ebx
jle 0x444e73
cmp edi, ebx
je 0x444e73
mov esi, dword [edi + 8]
mov ecx, dword [esp + 0x10]
push ebx
push edi
push ebx
push esi
push ebx
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetDIBits]
test eax, eax
je 0x444e6c
mov ebp, dword [edi + 0x14]
cmp ebp, ebx
jne 0x444e1c
mov eax, dword [edi + 8]
cdq
xor eax, edx
sub eax, edx
xor edx, edx
mov dx, word [edi + 0xe]
imul edx, dword [edi + 4]
add edx, 0x1f
sar edx, 3
and edx, 0xfffffffc
imul eax, edx
mov dword [edi + 0x14], eax
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0x14]
neg eax
mov dword [edi + 8], eax
mov eax, dword [esp + 0x50]
cmp ecx, eax
ja 0x444e6c
mov edx, dword [0x486534]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
push ebx
add eax, edx
mov edx, dword [esp + 0x14]
push edi
push eax
push esi
push ebx
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetDIBits]
test eax, eax
je 0x444e6c
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], 1
add eax, ebp
mov dword [0x4864a8], eax
mov dword [0x4864a4], eax
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x444e86
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x48]
cmp eax, ebx
je 0x444e99
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x444ead
mov ecx, dword [esp + 0x1c]
mov dword [0x48650c], ecx
jmp 0x444eb9
mov dword [0x4864a8], ebx
mov dword [0x4864a4], ebx
cmp eax, ebx
je 0x444fb0
mov edi, dword [esp + 0x710]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov eax, dword [edi + 0x7e0]
mov ecx, dword [esp + 0x2c]
sub esi, eax
sub edx, eax
mov eax, dword [edi + 0x7e4]
mov dword [esp + 0x30], edx
sub ebp, eax
lea edx, [esp + 0x28]
sub ecx, eax
mov dword [esp + 0x34], ebp
mov ebp, dword [sym.imp.USER32.dll_CopyRect]
push edx
push 0x4864ac
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ecx
call ebp
mov eax, dword [0x47c248]
mov esi, dword [0x486534]
cmp eax, ebx
je 0x444f95
cmp dword [0x4865b0], ebx
jne 0x444f5e
mov ecx, dword [0x486508]
push eax
mov eax, dword [0x486550]
push eax
push esi
push 0x4864a4
push ecx
push 0x486458
call fcn.0044bfc0
add esp, 0x18
test eax, eax
jne 0x444f56
mov dword [0x4865b0], 1
jmp 0x444f5e
cmp dword [0x4865b0], ebx
je 0x444f95
mov edx, dword [0x47c248]
mov eax, dword [0x4864a8]
mov ecx, dword [0x486534]
push edx
mov edx, dword [0x486508]
push eax
push ecx
push 0x4864a4
push edx
push 0x486458
call fcn.0044c020
add esp, 0x18
test eax, eax
jne 0x444f95
mov esi, dword [0x486508]
push esi
push 0x4864a0
mov ecx, edi
call fcn.004217c0
lea eax, [esp + 0x28]
push eax
push 0x486588
call ebp
jmp 0x444ff5
mov ecx, dword [esp + 0x710]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + 0x7e0]
mov esi, dword [esp + 0x2c]
sub ebp, eax
sub edi, eax
mov eax, dword [ecx + 0x7e4]
mov dword [esp + 0x28], ebp
sub edx, eax
sub esi, eax
mov dword [esp + 0x34], edx
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], esi
call fcn.00421850
mov eax, dword [0x486598]
mov ecx, dword [0x48659c]
mov dword [0x47c258], eax
mov dword [0x47c25c], ecx
mov dword [0x4865a0], ebx
mov eax, dword [0x486564]
mov ecx, dword [0x486520]
inc eax
cmp eax, ecx
mov dword [0x486564], eax
jl 0x44502c
mov dword [0x486564], ebx
cmp dword [0x485b08], ebx
jne 0x443fba
jmp 0x445092
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c3ec
jmp 0x44508a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c328
jmp 0x44508a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c2d0
jmp 0x44508a
push 1
mov ecx, esi
call fcn.0041ed00
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x445092
push eax
push 0x479c10
jmp 0x44508a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x47c290
call fcn.00446e00
add esp, 8
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x4865b0], ebx
je 0x4450b4
push 0x486458
call fcn.0044c0a0
add esp, 4
mov dword [0x4865b0], ebx
mov ecx, dword [0x486520]
xor eax, eax
cmp ecx, ebx
mov dword [0x486570], eax
jle 0x4451d6
mov esi, dword [esp + 0x14]
mov ebp, dword [sym.imp.GDI32.dll_DeleteObject]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
mov edx, eax
shl edx, 6
add edx, esi
mov ecx, dword [edx + 0x28]
cmp ecx, ebx
je 0x445103
mov edx, dword [edx + 0x2c]
cmp edx, ebx
je 0x445103
push ecx
push edx
call edi
mov eax, dword [0x486570]
shl eax, 6
mov dword [eax + esi + 0x28], ebx
mov eax, dword [0x486570]
mov ecx, eax
shl ecx, 6
lea edx, [ecx + esi]
mov ecx, dword [ecx + esi + 0x3c]
cmp ecx, ebx
je 0x445130
mov edx, dword [edx + 0x34]
cmp edx, ebx
je 0x445130
push ecx
push edx
call edi
mov edx, dword [0x486570]
shl edx, 6
mov dword [edx + esi + 0x3c], ebx
mov eax, dword [0x486570]
mov ecx, eax
shl ecx, 6
mov ecx, dword [ecx + esi + 0x2c]
cmp ecx, ebx
je 0x445156
push ecx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [0x486570]
shl edx, 6
mov dword [edx + esi + 0x2c], ebx
mov eax, dword [0x486570]
mov ecx, eax
shl ecx, 6
mov ecx, dword [ecx + esi + 0x34]
cmp ecx, ebx
je 0x44517c
push ecx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [0x486570]
shl edx, 6
mov dword [edx + esi + 0x34], ebx
mov eax, dword [0x486570]
mov ecx, eax
shl ecx, 6
mov ecx, dword [ecx + esi + 0x24]
cmp ecx, ebx
je 0x44519e
push ecx
call ebp
mov edx, dword [0x486570]
shl edx, 6
mov dword [edx + esi + 0x24], ebx
mov eax, dword [0x486570]
mov ecx, eax
shl ecx, 6
mov ecx, dword [ecx + esi + 0x38]
cmp ecx, ebx
je 0x4451c0
push ecx
call ebp
mov edx, dword [0x486570]
shl edx, 6
mov dword [edx + esi + 0x38], ebx
mov eax, dword [0x486570]
mov ecx, dword [0x486520]
inc eax
cmp eax, ecx
mov dword [0x486570], eax
jl 0x4450d9
jmp 0x4451dc
mov ebp, dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [0x486560]
cmp eax, ebx
je 0x4451ee
push eax
call ebp
mov dword [0x486560], ebx
mov eax, dword [0x486508]
cmp eax, ebx
je 0x445206
push eax
call fcn.00451fb9
add esp, 4
mov dword [0x486508], ebx
mov eax, dword [0x4865c0]
cmp eax, ebx
mov eax, dword [0x4864fc]
je 0x445221
cmp eax, ebx
je 0x445233
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x44522d
cmp eax, ebx
je 0x445233
push eax
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [0x4864fc], ebx
mov eax, dword [esp + 0x4c]
push eax
call fcn.00445840
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [esp + 0x20]
cmp esi, 0xfa0
je 0x445266
mov ecx, dword [esp + 0x710]
call fcn.00426140
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6fc
ret