Function at 0x4883f0
Capabilities:
Capture screenshot
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28c
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 8]
mov al, 9
cmp al, byte [ecx + 2]
push edi
sbb ecx, ecx
and ecx, dword [0x4f0b34]
mov dword [esp + 0x6c], ecx
je 0x48841c
call fcn.0041a480
mov edx, dword [0x4ec48c]
movzx edi, word [edx + 0xd0]
xor eax, eax
and edi, 3
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
cmp edi, 2
je 0x48849a
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ebx, eax
test ebx, ebx
je 0x48849a
push ebx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x48849a
test edi, edi
jne 0x488470
lea eax, [esp + 0x70]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x48849a
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
jmp 0x488492
xor eax, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
lea eax, [esp + 0x64]
push eax
push ebx
call dword [sym.imp.USER32.dll_ClientToScreen]
test eax, eax
je 0x48849a
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
add dword [esp + 0x40], ecx
add dword [esp + 0x44], edx
xor edi, edi
mov byte [esp + 0x14], 0
mov byte [esp + 0x17], 0
mov byte [esp + 0x10], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x19], 0
mov byte [esp + 0x1a], 0
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x30], 3
mov byte [esp + 0x1b], 0
mov byte [esp + 0x18], 1
mov dword [esp + 0x34], edi
mov byte [esp + 0x15], 0
mov byte [esp + 0x2a], 0
mov ebx, esi
mov al, byte [ebx]
cmp al, 0x20
je 0x4884ee
cmp al, 9
jne 0x4884f1
inc ebx
jmp 0x4884e4
cmp byte [ebx], 0x2a
jne 0x488915
mov byte [esp + 0x14], 1
nop
mov eax, dword [0x4f3de4]
push 2
push eax
inc ebx
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x488544
add ebx, 2
cmp dword [ebp + 0x14], edi
jle 0x488524
mov eax, dword [ebp + 0xc]
dec eax
jmp 0x488526
xor eax, eax
add dword [ebp + 0x14], eax
cmp dword [ebp + 0x18], edi
jle 0x48853a
mov eax, dword [ebp + 0x10]
dec eax
add dword [ebp + 0x18], eax
jmp 0x4888d6
xor eax, eax
add dword [ebp + 0x18], eax
jmp 0x4888d6
push 0x4e4270
call fcn.0049be50
add esp, 4
push 4
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x488670
push 2
add ebx, 4
push 0x4e4250
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x488589
mov dword [esp + 0x30], 1
jmp 0x4888d6
push 2
push 0x4e4254
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x4885aa
mov dword [esp + 0x30], 7
jmp 0x4888d6
push 2
push 0x4e426c
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x4885cb
mov dword [esp + 0x30], 5
jmp 0x4888d6
push 2
push 0x4e4260
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x4885ec
mov dword [esp + 0x30], 2
jmp 0x4888d6
push 2
push 0x4e4264
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x48860d
mov dword [esp + 0x30], 8
jmp 0x4888d6
push 2
push 0x4e4258
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x48862a
mov dword [esp + 0x30], edi
jmp 0x4888d6
push 2
push 0x4e425c
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x48864b
mov dword [esp + 0x30], 6
jmp 0x4888d6
push 2
push 0x4e4268
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x488857
mov dword [esp + 0x30], 3
jmp 0x4888d6
push 0x4e4364
call fcn.0049be50
add esp, 4
push 0xa
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x48869a
add ebx, 0xa
mov byte [esp + 0x19], 1
jmp 0x4888d6
push 0x4e41dc
call fcn.0049be50
add esp, 4
push 6
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x4886c4
add ebx, 6
mov byte [esp + 0x1a], 1
jmp 0x4888d6
push 0x4e4294
call fcn.0049be50
add esp, 4
push 6
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x48885e
push 0x4e41b4
add ebx, 6
mov byte [esp + 0x1f], 1
call fcn.0049be50
add esp, 4
push 0xa
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x488718
add ebx, 0xa
mov byte [esp + 0x13], 1
mov byte [esp + 0x18], al
jmp 0x488769
push 0x4e41c8
call fcn.0049be50
add esp, 4
push 4
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x48873c
mov byte [esp + 0x13], 1
jmp 0x488761
push 0x4dc2bc
call fcn.0049be50
add esp, 4
push 4
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x488857
mov byte [esp + 0x13], al
add ebx, 4
mov byte [esp + 0x18], 1
cmp byte [esp + 0x10], 0
jne 0x4888d6
cmp dword [esp + 0x34], edi
jne 0x4888d6
push 0x207
lea ecx, [esp + 0x94]
push ebx
push ecx
call fcn.004bd1c0
add esp, 0xc
mov edi, 0x4d9558
lea eax, [esp + 0x90]
mov byte [esp + 0x297], 0
call fcn.004099e0
test eax, eax
je 0x4887b4
mov byte [eax], 0
cmp byte [esp + 0x13], 0
je 0x4887d0
lea esi, [esp + 0x90]
call fcn.0041a410
mov dword [esp + 0x34], eax
jmp 0x48884c
push 0x207
lea edx, [esp + 0x94]
push ebx
push edx
call fcn.004bd1c0
add esp, 0xc
cmp byte [esp + 0x90], 0x3c
mov byte [esp + 0x297], 0
jne 0x488857
mov edi, 0x4e41d8
lea eax, [esp + 0x91]
call fcn.004099e0
test eax, eax
je 0x488857
push 0
push 0
push 0
lea edx, [esp + 0x64]
push edx
mov byte [eax], 0
lea ecx, [esp + 0xa0]
sub eax, ecx
push 0
lea ebx, [ebx + eax + 1]
lea eax, [esp + 0xa5]
push 0
push eax
call fcn.004a43b0
add esp, 0x1c
cmp dword [esp + 0x58], 1
mov dword [esp + 0x34], eax
jne 0x48884c
mov byte [esp + 0x10], 1
cmp dword [esp + 0x34], 0
jne 0x4888d6
mov byte [esp + 0x10], 1
jmp 0x4888d6
push 0x4e4200
call fcn.0049be50
add esp, 4
push 0xa
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x488885
add ebx, 0xa
mov byte [esp + 0x15], 1
jmp 0x4888d6
push 0x4e4214
call fcn.0049be50
add esp, 4
push 0xa
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x4888b1
add ebx, 0xa
mov byte [esp + 0x15], 1
mov byte [esp + 0x2a], 1
jmp 0x4888d6
push 0x4e4378
call fcn.0049be50
add esp, 4
push 3
push eax
push ebx
call fcn.004babb4
add esp, 0xc
test eax, eax
jne 0x4888d6
add ebx, 3
mov byte [esp + 0x17], 1
xor edi, edi
cmp ebx, edi
je 0x488908
mov dl, byte [ebx]
test dl, dl
je 0x488908
mov ecx, 0x4d9558
mov al, 0x20
lea esp, [esp]
cmp dl, al
je 0x4889a0
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4888f0
mov dl, byte [ebx + 1]
inc ebx
test dl, dl
jne 0x4888e2
xor esi, esi
cmp byte [esp + 0x10], 0
jne 0x488a95
cmp esi, edi
je 0x488972
cmp byte [esp + 0x14], 0
jne 0x48894c
cmp byte [ebp + 0x24], 0
jne 0x488947
push 0x4de128
call fcn.0049be50
add esp, 4
push eax
mov eax, esi
call fcn.004a3290
add esp, 4
mov byte [esp + 0x14], 0
test eax, eax
je 0x48894c
mov byte [esp + 0x14], 1
cmp byte [esp + 0x17], 0
jne 0x488979
push 0x4e4378
call fcn.0049be50
add esp, 4
push eax
mov eax, esi
call fcn.004a3290
add esp, 4
test eax, eax
setne byte [esp + 0x17]
cmp byte [esp + 0x17], 0
je 0x4889c0
mov eax, dword [ebp + 0x1c]
mov ecx, eax
movzx edx, al
shr ecx, 8
mov dword [esp + 0x20], eax
movzx ebx, cl
shl edx, 8
shr eax, 0x10
or ebx, edx
movzx eax, al
shl ebx, 8
or ebx, eax
mov dword [ebp + 0x1c], ebx
jmp 0x4889e5
lea esi, [ebx + 1]
mov ebx, esi
mov al, byte [ebx]
cmp al, 0x20
je 0x4889af
cmp al, 9
jne 0x4889b2
inc ebx
jmp 0x4889a5
cmp byte [ebx], 0x2a
je 0x488500
jmp 0x48890a
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x1c]
mov edx, ecx
shr edx, 8
movzx eax, dl
movzx edx, cl
shl edx, 8
shr ecx, 0x10
or eax, edx
movzx ecx, cl
shl eax, 8
or eax, ecx
mov dword [esp + 0x20], eax
cmp byte [ebp + 0x24], 0
mov ecx, dword [0x4f0b10]
mov dword [esp + 0x60], ecx
je 0x4889fd
xor esi, esi
mov dword [esp + 0x5c], esi
jmp 0x488a13
mov eax, dword [ebp + 8]
mov dl, 1
cmp dl, byte [eax + 2]
sbb eax, eax
and eax, dword [0x4f0b14]
mov dword [esp + 0x5c], eax
mov esi, eax
cmp ecx, edi
je 0x488a1c
call fcn.0041a480
cmp esi, edi
je 0x488a27
mov ecx, esi
call fcn.0041a480
mov dl, byte [esp + 0x1b]
test dl, dl
jne 0x488a43
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
add dword [ebp + 0xc], eax
add dword [ebp + 0x10], ecx
add dword [ebp + 0x14], eax
add dword [ebp + 0x18], ecx
mov eax, dword [ebp + 0x20]
cmp eax, edi
jge 0x488a4f
mov dword [ebp + 0x20], edi
jmp 0x488a77
cmp eax, 0xff
jle 0x488a5f
mov dword [ebp + 0x20], 0xff
jmp 0x488a63
cmp eax, edi
jle 0x488a77
mov ecx, ebx
shr ecx, 8
mov byte [esp + 0x13], bl
shr ebx, 0x10
mov byte [esp + 0x12], cl
mov byte [esp + 0x11], bl
mov edi, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 0
test dl, dl
je 0x488a87
call edi
jmp 0x488a8d
call dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x488af6
cmp byte [esp + 0x18], 0
je 0x488aab
mov eax, dword [esp + 0x34]
test eax, eax
je 0x488aab
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [0x4ec48c]
test byte [edx + 0xe0], 1
jne 0x488ad9
mov eax, dword [0x4f13d8]
push 1
push 0
push 0xffffffffffffffff
push 0x4d9598
push eax
call fcn.004a5c20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ecx, dword [ebp + 8]
push 0x4d6959
push 0
push 0x4d9598
call fcn.0042d070
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp byte [esp + 0x14], 0
mov byte [esp + 0x16], 0
je 0x489549
xor esi, esi
cmp byte [esp + 0x1b], 0
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x58], esi
jne 0x488bd8
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x3c]
sub esi, dword [ebp + 0x10]
sub ebx, edi
push ecx
inc ebx
inc esi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [esp + 0x54], eax
test eax, eax
je 0x4893ae
mov edx, dword [esp + 0x3c]
push esi
push ebx
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [esp + 0x48], eax
test eax, eax
je 0x4893ae
mov ecx, dword [esp + 0x54]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x64], eax
test eax, eax
je 0x4893ae
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
push 0xcc0020
push edx
push edi
push eax
push esi
push ebx
push 0
push 0
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x4893ae
push 8
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x30]
push ecx
push edx
call fcn.00437d50
add esp, 0x14
mov dword [esp + 0x50], eax
test eax, eax
je 0x4893ae
mov edi, eax
jmp 0x488cc2
push esi
call edi
mov edi, eax
mov dword [esp + 0x54], edi
cmp edi, esi
je 0x489396
mov ebx, dword [ebp + 0x14]
cmp dword [ebp + 0xc], esi
jne 0x488c1c
cmp dword [ebp + 0x10], esi
jne 0x488c1c
cmp ebx, esi
mov esi, dword [ebp + 0x18]
jne 0x488c1f
test esi, esi
jne 0x488c1f
push 8
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x30]
push edx
push eax
jmp 0x488caa
mov esi, dword [ebp + 0x18]
cmp byte [ebp + 0x24], 0
je 0x488c2e
mov ecx, 1
mov eax, ecx
jmp 0x488c66
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x70]
push ecx
push 0x18
push edx
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
je 0x489396
test ebx, ebx
jne 0x488c5a
test esi, esi
jne 0x488c5a
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
dec ebx
dec esi
sub ebx, dword [ebp + 0xc]
sub esi, dword [ebp + 0x10]
lea eax, [ebx + 1]
lea ecx, [esi + 1]
mov edx, dword [ebp + 0x10]
push 0xffffffffffffffff
push 0
push 0
push 0
push 0
push edx
mov edx, dword [ebp + 0xc]
push edx
push ecx
push eax
mov eax, dword [esp + 0x58]
push eax
lea ecx, [esp + 0x70]
push ecx
call fcn.00492c30
add esp, 0x2c
test al, al
je 0x489396
push 8
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x30]
push ecx
push edx
mov eax, edi
call fcn.00437d50
mov edi, eax
add esp, 0x14
mov dword [esp + 0x50], edi
test edi, edi
je 0x489396
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0x2c]
cmp byte [esp + 0x10], 0
mov dword [esp + 0x38], edi
mov dword [esp + 0x1c], eax
je 0x488cee
xor esi, esi
test eax, eax
jle 0x488cf2
and dword [edi + esi*4], 0xf8f8f8f8
inc esi
cmp esi, eax
jl 0x488ce0
jmp 0x488cf2
mov esi, dword [esp + 0x1c]
cmp byte [esp + 0x15], 0
mov ebx, dword [ebp + 0x20]
je 0x488db6
xor esi, esi
test eax, eax
jle 0x488d67
mov eax, dword [edi + esi*4]
mov ecx, eax
shr ecx, 8
movzx edx, cl
mov ecx, eax
shr ecx, 0x10
movzx eax, al
movzx ecx, cl
add edx, ecx
add edx, eax
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp byte [esp + 0x2a], 0
je 0x488d51
mov ecx, 0xff
sub ecx, ebx
cmp eax, ecx
sbb edx, edx
and edx, 0xff000001
add edx, 0xffffff
mov dword [edi + esi*4], edx
jmp 0x488d60
mov ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
mov dword [edi + esi*4], ecx
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x488d06
mov eax, dword [esp + 0x20]
mov edx, eax
shr edx, 8
movzx ecx, dl
mov edx, eax
shr edx, 0x10
movzx eax, al
movzx edx, dl
add ecx, edx
add ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp byte [esp + 0x2a], 0
je 0x488e3f
mov ecx, 0xff
sub ecx, ebx
cmp eax, ecx
sbb eax, eax
and eax, 0xff000001
add eax, 0xffffff
mov dword [esp + 0x20], eax
xor ebx, ebx
cmp byte [ebp + 0x24], 0
jne 0x488e54
cmp dword [esp + 0x30], 3
je 0x488e1b
mov edx, dword [esp + 0x1c]
lea eax, [edx*4]
push eax
call fcn.004ba2ed
add esp, 4
mov dword [esp + 0x58], eax
test eax, eax
je 0x48939a
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x70], edi
mov dword [esp + 0x7c], edx
call fcn.00485e10
cmp byte [esp + 0x19], 0
je 0x4890a6
cmp dword [esp + 0x30], 4
jle 0x488ea3
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], eax
jmp 0x488ea7
mov ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x488db6
mov ecx, dword [edi]
and ecx, 0xffffff
cmp byte [esp + 0x17], 0
je 0x488e67
mov eax, ecx
jmp 0x488e6c
call fcn.0042ecd0
push eax
lea ecx, [esp + 0x74]
push str.0x_06X
push ecx
call fcn.004ba66c
mov eax, dword [esp + 0x6c]
add esp, 0xc
push 1
push 0
push 0xffffffffffffffff
lea edx, [esp + 0x7c]
push edx
push eax
call fcn.004a5c20
mov byte [esp + 0x16], 1
mov byte [esp + 0x2b], 1
jmp 0x48939a
mov edx, dword [esp + 0x24]
cmp ebx, 1
jge 0x488f23
cmp byte [esp + 0x10], 0
je 0x488ebb
and dword [esp + 0x20], 0xf8f8f8f8
xor esi, esi
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x2c], esi
jle 0x489054
mov ebx, dword [esp + 0x38]
nop
xor eax, eax
mov byte [esp + 0x16], 1
test edx, edx
jle 0x488ef6
mov ecx, ebx
lea ecx, [ecx]
mov edi, dword [ecx]
and edi, 0xffffff
cmp edi, dword [esp + 0x20]
je 0x488f05
inc eax
add ecx, 4
cmp eax, edx
jl 0x488ee0
mov ecx, dword [esp + 0x38]
imul esi, edx
mov eax, dword [ecx + esi*4]
jmp 0x48904b
inc esi
lea eax, [edx*4]
add ebx, eax
mov byte [esp + 0x16], 0
mov dword [esp + 0x1c], esi
cmp esi, dword [esp + 0x2c]
jl 0x488ed0
jmp 0x489054
cmp byte [esp + 0x10], 0
mov cl, byte [esp + 0x13]
mov dl, byte [esp + 0x12]
je 0x488f3d
and cl, 0xf8
and dl, 0xf8
and byte [esp + 0x11], 0xf8
movzx edi, cl
cmp ebx, edi
jle 0x488f4b
mov byte [esp + 0x15], 0
jmp 0x488f53
mov al, cl
sub al, bl
mov byte [esp + 0x15], al
movzx eax, dl
cmp ebx, eax
jle 0x488f61
mov byte [esp + 0x14], 0
jmp 0x488f69
mov al, dl
sub al, bl
mov byte [esp + 0x14], al
mov al, byte [esp + 0x11]
movzx esi, al
cmp ebx, esi
jle 0x488f7b
mov byte [esp + 0x10], 0
jmp 0x488f81
sub al, bl
mov byte [esp + 0x10], al
mov eax, 0xff
sub eax, edi
cmp ebx, eax
jle 0x488f93
mov byte [esp + 0x13], 0xff
jmp 0x488f9a
lea eax, [ecx + ebx]
mov byte [esp + 0x13], al
movzx eax, dl
mov ecx, 0xff
sub ecx, eax
cmp ebx, ecx
jle 0x488faf
mov byte [esp + 0x12], 0xff
jmp 0x488fb6
lea eax, [edx + ebx]
mov byte [esp + 0x12], al
mov edx, 0xff
sub edx, esi
cmp ebx, edx
jle 0x488fc8
mov byte [esp + 0x11], 0xff
jmp 0x488fd0
add bl, byte [esp + 0x11]
mov byte [esp + 0x11], bl
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x1c], 0
jle 0x489054
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], eax
jmp 0x488ff0
xor edi, edi
mov byte [esp + 0x16], 1
cmp dword [esp + 0x24], edi
jle 0x48903b
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
mov ecx, eax
mov ebx, eax
shr ecx, 0x10
shr ebx, 8
cmp cl, byte [esp + 0x15]
jb 0x489031
cmp cl, byte [esp + 0x13]
ja 0x489031
cmp bl, byte [esp + 0x14]
jb 0x489031
cmp bl, byte [esp + 0x12]
ja 0x489031
cmp al, byte [esp + 0x10]
jb 0x489031
cmp al, byte [esp + 0x11]
jbe 0x489080
inc edi
add esi, 4
cmp edi, dword [esp + 0x24]
jl 0x489001
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + eax*4]
and eax, 0xffffff
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
imul esi, eax
cmp dword [esp + 0x30], 4
jle 0x488e99
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], eax
mov byte [esp + 0x2b], 1
jmp 0x48939a
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
add ecx, ecx
add ecx, ecx
add dword [esp + 0x20], ecx
inc eax
mov byte [esp + 0x16], 0
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x2c]
jl 0x488ff0
jmp 0x489054
cmp byte [esp + 0x1a], 0
je 0x48923f
cmp ebx, 1
jge 0x489117
cmp byte [esp + 0x10], 0
mov ecx, dword [esp + 0x20]
je 0x4890c7
and ecx, 0xf8f8f8f8
mov edx, dword [esp + 0x1c]
xor esi, esi
test edx, edx
jle 0x488e99
mov eax, dword [esp + 0x38]
lea esp, [esp]
mov edi, dword [eax + esi*4]
and edi, 0xffffff
cmp edi, ecx
jne 0x4890fc
inc esi
cmp esi, edx
jl 0x4890e0
mov byte [esp + 0x2b], 1
jmp 0x48939a
mov eax, dword [eax + esi*4]
and eax, 0xffffff
mov dword [esp + 0x4c], eax
mov byte [esp + 0x16], 1
mov byte [esp + 0x2b], 1
jmp 0x48939a
cmp byte [esp + 0x10], 0
mov cl, byte [esp + 0x13]
je 0x48912e
mov al, 0xf8
and byte [esp + 0x12], al
and cl, al
and byte [esp + 0x11], al
movzx edi, cl
cmp ebx, edi
jle 0x489139
xor dl, dl
jmp 0x48913d
mov dl, cl
sub dl, bl
movzx eax, byte [esp + 0x12]
mov byte [esp + 0x15], dl
mov dword [esp + 0x20], eax
cmp ebx, eax
jle 0x489155
mov byte [esp + 0x14], 0
jmp 0x48915f
mov al, byte [esp + 0x12]
sub al, bl
mov byte [esp + 0x14], al
mov al, byte [esp + 0x11]
movzx esi, al
cmp ebx, esi
jle 0x489171
mov byte [esp + 0x10], 0
jmp 0x489177
sub al, bl
mov byte [esp + 0x10], al
mov eax, 0xff
sub eax, edi
cmp ebx, eax
jle 0x489189
mov byte [esp + 0x13], 0xff
jmp 0x489190
lea eax, [ecx + ebx]
mov byte [esp + 0x13], al
mov ecx, 0xff
sub ecx, dword [esp + 0x20]
cmp ebx, ecx
jle 0x4891a4
mov byte [esp + 0x12], 0xff
jmp 0x4891ae
mov al, bl
add al, byte [esp + 0x12]
mov byte [esp + 0x12], al
mov eax, 0xff
sub eax, esi
cmp ebx, eax
jle 0x4891c0
mov byte [esp + 0x11], 0xff
jmp 0x4891c8
add bl, byte [esp + 0x11]
mov byte [esp + 0x11], bl
xor esi, esi
cmp dword [esp + 0x1c], esi
jle 0x488e99
mov edi, dword [esp + 0x38]
jmp 0x4891e4
mov dl, byte [esp + 0x15]
mov eax, dword [edi + esi*4]
mov ecx, eax
mov ebx, eax
shr ecx, 0x10
shr ebx, 8
cmp cl, dl
jb 0x489224
cmp cl, byte [esp + 0x13]
ja 0x489224
cmp bl, byte [esp + 0x14]
jb 0x489224
cmp bl, byte [esp + 0x12]
ja 0x489224
cmp al, byte [esp + 0x10]
jb 0x489224
cmp al, byte [esp + 0x11]
ja 0x489224
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x4891e0
mov byte [esp + 0x2b], 1
jmp 0x48939a
mov edi, eax
and edi, 0xffffff
mov dword [esp + 0x4c], edi
mov byte [esp + 0x16], 1
mov byte [esp + 0x2b], 1
jmp 0x48939a
cmp ebx, 1
jge 0x489290
cmp byte [esp + 0x10], 0
mov eax, dword [esp + 0x20]
je 0x489254
and eax, 0xf8f8f8f8
mov edx, dword [esp + 0x1c]
xor esi, esi
test edx, edx
jle 0x488e99
mov ecx, dword [esp + 0x38]
jmp 0x489270
mov edi, dword [ecx + esi*4]
and edi, 0xffffff
cmp edi, eax
je 0x488e94
inc esi
cmp esi, edx
jl 0x489270
mov byte [esp + 0x2b], 1
jmp 0x48939a
cmp byte [esp + 0x10], 0
mov cl, byte [esp + 0x13]
je 0x4892a7
mov al, 0xf8
and byte [esp + 0x12], al
and cl, al
and byte [esp + 0x11], al
movzx edi, cl
cmp ebx, edi
jle 0x4892b2
xor dl, dl
jmp 0x4892b6
mov dl, cl
sub dl, bl
movzx eax, byte [esp + 0x12]
mov byte [esp + 0x15], dl
mov dword [esp + 0x20], eax
cmp ebx, eax
jle 0x4892ce
mov byte [esp + 0x14], 0
jmp 0x4892d8
mov al, byte [esp + 0x12]
sub al, bl
mov byte [esp + 0x14], al
mov al, byte [esp + 0x11]
movzx esi, al
cmp ebx, esi
jle 0x4892ea
mov byte [esp + 0x10], 0
jmp 0x4892f0
sub al, bl
mov byte [esp + 0x10], al
mov eax, 0xff
sub eax, edi
cmp ebx, eax
jle 0x489302
mov byte [esp + 0x13], 0xff
jmp 0x489309
lea eax, [ecx + ebx]
mov byte [esp + 0x13], al
mov ecx, 0xff
sub ecx, dword [esp + 0x20]
cmp ebx, ecx
jle 0x48931d
mov byte [esp + 0x12], 0xff
jmp 0x489327
mov al, bl
add al, byte [esp + 0x12]
mov byte [esp + 0x12], al
mov eax, 0xff
sub eax, esi
cmp ebx, eax
jle 0x489339
mov byte [esp + 0x11], 0xff
jmp 0x489341
add bl, byte [esp + 0x11]
mov byte [esp + 0x11], bl
xor esi, esi
cmp dword [esp + 0x1c], esi
jle 0x488e99
mov edi, dword [esp + 0x38]
mov eax, dword [edi + esi*4]
mov ecx, eax
mov ebx, eax
shr ecx, 0x10
shr ebx, 8
cmp cl, dl
jb 0x489388
cmp cl, byte [esp + 0x13]
ja 0x489384
cmp bl, byte [esp + 0x14]
jb 0x489384
cmp bl, byte [esp + 0x12]
ja 0x489384
cmp al, byte [esp + 0x10]
jb 0x489384
cmp al, byte [esp + 0x11]
jbe 0x488e94
mov dl, byte [esp + 0x15]
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x489351
mov byte [esp + 0x2b], 1
jmp 0x48939a
mov esi, dword [esp + 0x1c]
cmp byte [esp + 0x1b], 0
je 0x4893b2
mov edx, dword [esp + 0x3c]
push edx
call dword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x4893bf
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
push eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edi, dword [esp + 0x54]
test edi, edi
je 0x4893de
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4893d7
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp byte [esp + 0x18], 0
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
je 0x4893f6
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4893f6
push eax
call edi
mov eax, dword [esp + 0x48]
test eax, eax
je 0x489401
push eax
call edi
mov eax, dword [esp + 0x50]
test eax, eax
je 0x489412
push eax
call fcn.004ba14c
add esp, 4
mov eax, dword [esp + 0x58]
test eax, eax
je 0x489423
push eax
call fcn.004ba14c
add esp, 4
cmp byte [esp + 0x2b], 0
jne 0x489448
mov eax, dword [0x4f13d8]
push 0x18
push 0
push 2
call fcn.00401570
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp byte [ebp + 0x24], 0
jne 0x48951c
cmp byte [esp + 0x16], 0
je 0x489528
mov edx, dword [esp + 0x30]
cmp edx, 3
je 0x489477
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov eax, esi
call fcn.004854f0
mov esi, eax
mov eax, esi
cdq
idiv dword [esp + 0x24]
cmp byte [esp + 0x1b], 0
je 0x489490
mov ecx, dword [ebp + 0x10]
add edx, dword [ebp + 0xc]
lea esi, [eax + ecx]
jmp 0x4894a0
sub edx, dword [esp + 0x40]
sub eax, dword [esp + 0x44]
add edx, dword [ebp + 0xc]
add eax, dword [ebp + 0x10]
mov esi, eax
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x4894b6
mov eax, edx
cdq
push 0x18
push edx
push eax
mov eax, ecx
call fcn.00401570
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x4894cc
mov eax, esi
cdq
push 0x18
push edx
push eax
mov eax, ecx
call fcn.00401570
mov esi, dword [esp + 0x6c]
test esi, esi
je 0x48951c
mov eax, dword [esp + 0x4c]
cmp eax, 0xffffffff
je 0x48951c
cmp byte [esp + 0x17], 0
jne 0x4894eb
mov ecx, eax
call fcn.0042ecd0
push eax
lea edx, [esp + 0x74]
push str.0x_06X
push edx
call fcn.004ba66c
add esp, 0xc
push 1
push 0
push 0xffffffffffffffff
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.004a5c20
test eax, eax
jne 0x48951c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp byte [esp + 0x16], 0
mov eax, 0x4d69c8
jne 0x48952d
mov eax, 0x4d9220
mov ecx, dword [0x4f13d8]
push 1
push 0
push 0xffffffffffffffff
push eax
push ecx
call fcn.004a5c20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov edx, dword [ebp + 0xc]
cmp edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x20]
setg byte [esp + 0x19]
cmp eax, dword [ebp + 0x18]
setg byte [esp + 0x1a]
test ebx, ebx
jle 0x489610
mov al, byte [esp + 0x13]
movzx esi, al
cmp ebx, esi
jle 0x48957c
mov byte [esp + 0x15], 0
jmp 0x489582
sub al, bl
mov byte [esp + 0x15], al
mov cl, byte [esp + 0x12]
movzx eax, cl
cmp ebx, eax
jle 0x489594
mov byte [esp + 0x14], 0
jmp 0x48959c
mov al, cl
sub al, bl
mov byte [esp + 0x14], al
mov dl, byte [esp + 0x11]
movzx edi, dl
cmp ebx, edi
jle 0x4895ae
mov byte [esp + 0x10], 0
jmp 0x4895b6
mov al, dl
sub al, bl
mov byte [esp + 0x10], al
mov eax, 0xff
sub eax, esi
cmp ebx, eax
jle 0x4895c8
mov byte [esp + 0x13], 0xff
jmp 0x4895d6
mov dl, byte [esp + 0x11]
mov al, bl
add al, byte [esp + 0x13]
mov byte [esp + 0x13], al
movzx eax, cl
mov esi, 0xff
sub esi, eax
cmp ebx, esi
jle 0x4895eb
mov byte [esp + 0x12], 0xff
jmp 0x4895f2
lea eax, [ecx + ebx]
mov byte [esp + 0x12], al
mov ecx, 0xff
sub ecx, edi
cmp ebx, ecx
mov ecx, dword [ebp + 0x18]
jle 0x489607
mov byte [esp + 0x11], 0xff
jmp 0x489613
lea eax, [edx + ebx]
mov byte [esp + 0x11], al
jmp 0x489613
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x6c]
lea ebx, [ebx]
xor eax, eax
cmp byte [esp + 0x19], al
je 0x489630
cmp esi, dword [ebp + 0x14]
setge al
jmp 0x489636
cmp esi, dword [ebp + 0x14]
setle al
test eax, eax
je 0x489678
mov edi, dword [ebp + 0x10]
lea ecx, [ecx]
xor eax, eax
cmp byte [esp + 0x1a], al
je 0x48964f
cmp edi, ecx
setge al
jmp 0x489654
cmp edi, ecx
setle al
test eax, eax
je 0x4896f2
mov edx, dword [esp + 0x3c]
push edi
push esi
push edx
call dword [sym.imp.GDI32.dll_GetPixel]
cmp ebx, 1
jge 0x4896ac
cmp eax, dword [ebp + 0x1c]
jne 0x4896dd
mov byte [esp + 0x16], 1
mov eax, dword [esp + 0x3c]
push eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp byte [esp + 0x16], 0
jne 0x489704
mov ecx, dword [0x4f13d8]
push 1
push 0
push 0xffffffffffffffff
push 0x4d9220
push ecx
call fcn.004a5c20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ecx, eax
mov edx, eax
shr ecx, 8
shr edx, 0x10
cmp al, byte [esp + 0x15]
jb 0x4896da
cmp al, byte [esp + 0x13]
ja 0x4896da
cmp cl, byte [esp + 0x14]
jb 0x4896da
cmp cl, byte [esp + 0x12]
ja 0x4896da
cmp dl, byte [esp + 0x10]
jb 0x4896da
cmp dl, byte [esp + 0x11]
jbe 0x489673
mov ebx, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x18]
xor eax, eax
cmp byte [esp + 0x1a], al
sete al
lea edi, [edi + eax*2 - 1]
jmp 0x489640
xor edx, edx
cmp byte [esp + 0x19], dl
sete dl
lea esi, [esi + edx*2 - 1]
jmp 0x489620
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x48971e
mov eax, esi
sub eax, dword [esp + 0x40]
push 0x18
cdq
push edx
push eax
mov eax, ecx
call fcn.00401570
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x489738
mov eax, edi
sub eax, dword [esp + 0x44]
push 0x18
cdq
push edx
push eax
mov eax, ecx
call fcn.00401570
mov edx, dword [0x4f13d8]
push 1
push 0
push 0xffffffffffffffff
push 0x4d69c8
push edx
call fcn.004a5c20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20