Function at 0x437de0
Capabilities:
Capture screenshot

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov ebp, eax
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4c
call esi
mov dword [esp + 0x14], eax
push 0x4d
call esi
mov dword [esp + 0x10], eax
push 7
push ebp
call dword [sym.imp.GDI32.dll_GetCurrentObject]
mov edi, eax
lea eax, [esp + 0x40]
push eax
push 0x18
push edi
call dword [sym.imp.GDI32.dll_GetObjectW]
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edi, ebp
push ebp
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ebp, eax
push ebx
push esi
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [esp + 0xc], eax
push eax
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x1c], eax
push 0xcc0020
push dword [esp + 0x14]
push dword [esp + 0x1c]
mov dword [esp + 0x24], edi
push edi
push ebx
push esi
push 0
push 0
push ebp
call dword [sym.imp.GDI32.dll_BitBlt]
mov dword [esp + 0x28], esi
not esi
mov dword [esp + 0x24], ebx
xor ebx, 2
and ebx, esi
mov dword [esp + 8], 0x68ef4929
cmp ebx, 0xffffffff
jl case.default.0x437ea6
mov dword [esp + 8], 0x3d201557
mov edi, 0xab7c55c4
xor eax, eax
cmp edi, 0xd8e96b70
setl al
jmp dword [eax*4 + 0x450df4]
xor eax, eax
cmp edi, 0x3d201557
setl al
jmp dword [eax*4 + 0x450dfc]
xor eax, eax
cmp edi, 0x68ef4929
setl al
jmp dword [eax*4 + 0x450e04]
sete al
movzx eax, al
jmp dword [eax*4 + 0x450e0c]
push 0xcc0020
push dword [esp + 0x14]
push dword [esp + 0x1c]
push 0
push 0
push dword [esp + 0x2c]
push dword [esp + 0x3c]
push dword [esp + 0x44]
push 0
push 0
push ebp
call dword [sym.imp.GDI32.dll_StretchBlt]
mov edi, 0x3d201557
xor eax, eax
cmp edi, 0xd8e96b70
setl al
jmp dword [eax*4 + 0x450df4]
xor eax, eax
cmp edi, 0x26f93f4b
setl al
jmp dword [eax*4 + 0x450e1c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x450e24]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x2c], 0xd2c4d6a1
mov dword [esp + 0x30], 0xd594d5d3
mov word [esp + 0x34], 0xdad6
mov byte [esp + 0x36], 0x42
mov dword [esp + 0x37], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xe
ja 0x437fab
nop
nop
nop
nop
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x2c]
push dword [esp + 4]
push eax
call fcn.0043ade0
add esp, 8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x2c], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xf
jb 0x437f80
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x6c]
push edi
push esi
push eax
call fcn.0040d570
mov ebx, eax
mov esi, dword [esp + 0x20]
mov edi, 0xb6137c89
test esi, esi
je 0x437fcf
mov edi, 0x810ea7eb
xor eax, eax
cmp edi, 0xd8e96b70
setl al
mov ecx, ebx
mov byte [esp + 2], bl
jmp dword [eax*4 + 0x450df4]
xor eax, eax
cmp edi, 0xd8e96b70
sete al
jmp dword [eax*4 + 0x450e2c]
push dword [esp + 0x18]
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
push dword [esp + 0x1c]
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x20]
mov edi, 0xc866a2a8
push eax
push ecx
push dword [esp + 0x14]
call fcn.004381a0
add esp, 0xc
mov byte [esp + 3], al
xor eax, eax
cmp edi, 0xd8e96b70
setl al
jmp dword [eax*4 + 0x450df4]
xor eax, eax
cmp edi, 0x3d201557
sete al
jmp dword [eax*4 + 0x450e14]
push dword [esp + 0x1c]
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
push ebp
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edi, 0xd8e96b70
jmp case.0x437ea6.6
xor eax, eax
cmp edi, 0xb6137c89
setl al
jmp dword [eax*4 + 0x450e34]
xor eax, eax
cmp edi, 0xc866a2a8
setl al
jmp dword [eax*4 + 0x450e3c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x450e44]
mov edi, 0x26f93f4b
test byte [esp + 3], 1
jne 0x4380c2
mov edi, 0xb6137c89
xor ebx, ebx
xor eax, eax
cmp edi, 0xd8e96b70
setl al
jmp dword [eax*4 + 0x450df4]
xor eax, eax
cmp edi, 0xab7c55c4
setl al
jmp dword [eax*4 + 0x450e54]
sete al
movzx eax, al
jmp dword [eax*4 + 0x450e5c]
xor eax, eax
mov edi, dword [esp + 8]
cmp edi, 0xd8e96b70
setl al
jmp dword [eax*4 + 0x450df4]
xor eax, eax
cmp edi, 0x810ea7eb
sete al
jmp dword [eax*4 + 0x450e64]
push esi
call fcn.0040c700
add esp, 4
mov edi, 0xb6137c89
xor eax, eax
cmp edi, 0xd8e96b70
setl al
movzx ecx, byte [esp + 2]
mov ebx, ecx
jmp dword [eax*4 + 0x450df4]
xor eax, eax
cmp edi, 0xb6137c89
sete al
jmp dword [eax*4 + 0x450e4c]
xor eax, eax
cmp edi, 0xd8e96b70
setl al
jmp dword [eax*4 + 0x450df4]
push dword [esp + 0xc]
call dword [sym.imp.GDI32.dll_DeleteObject]
and bl, 1
mov eax, ebx
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
mov edx, eax
sub edx, 0xbcf73603
setl cl
mov dword [ebp - 0x19c], ecx
mov ecx, dword [ebp - 0x1a0]
mov edx, dword [ebp - 0x19c]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0xfad42bf0
sete cl
mov dword [ebp - 0x1e4], ecx
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x44c43ee1
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x6290f9b6
sete cl
mov dword [ebp - 0x244], ecx
mov eax, dword [ebp - 0x248]
mov ecx, dword [ebp - 0x244]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0x3c]
mov dword [eax], 0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x20]
sub esp, 0x1c
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 9
call fcn.00408240
add esp, 0x1c
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
test eax, eax
mov eax, 0x25d17bcc
jne 0x4386b1
mov eax, 0x7b50f99f
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov byte [ebp - 0x16], 0
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xaa2f3986
setl cl
mov dword [ebp - 0x13c], ecx
mov ecx, dword [ebp - 0x140]
mov edx, dword [ebp - 0x13c]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0xb56a6edb
sete cl
mov dword [ebp - 0x15c], ecx
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x15c]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x6d2c46f7
setl cl
mov dword [ebp - 0x294], ecx
mov ecx, dword [ebp - 0x298]
mov edx, dword [ebp - 0x294]
mov ecx, dword [ecx + edx*4]
jmp ecx
call fcn.0041d140
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
sub ecx, eax
setl byte [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov dword [eax], 0xb56a6edb
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xfad42bf0
setl cl
mov dword [ebp - 0x1fc], ecx
mov ecx, dword [ebp - 0x200]
mov edx, dword [ebp - 0x1fc]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x7ed4c120
setl cl
mov dword [ebp - 0x28c], ecx
mov ecx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x28c]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x5d482276
setl cl
mov dword [ebp - 0x254], ecx
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x254]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0xdfee1290
setl cl
mov dword [ebp - 0x1cc], ecx
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x7b50f99f
sete cl
mov dword [ebp - 0x264], ecx
mov eax, dword [ebp - 0x268]
mov ecx, dword [ebp - 0x264]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xb261af77
sete cl
mov dword [ebp - 0x154], ecx
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xbcf73603
sete cl
mov dword [ebp - 0x184], ecx
mov eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x184]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xaa2f3986
sete cl
mov dword [ebp - 0x134], ecx
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x134]
mov eax, dword [eax + ecx*4]
jmp eax
hlt
xor ecx, ecx
mov edx, eax
sub edx, 0xb261af77
setl cl
mov dword [ebp - 0x16c], ecx
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x16c]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x6290f9b6
setl cl
mov dword [ebp - 0x24c], ecx
mov ecx, dword [ebp - 0x250]
mov edx, dword [ebp - 0x24c]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
mov dword [eax], 0xe23e8377
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xe23e8377
setl cl
mov dword [ebp - 0x1c4], ecx
mov ecx, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x1c4]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x7b50f99f
setl cl
mov dword [ebp - 0x26c], ecx
mov ecx, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov al, byte [ebp - 0x18]
test al, al
mov eax, 0xc3c027c2
jne 0x438956
mov eax, 0xe28d7392
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [ebp - 0x15]
mov byte [ebp - 0x17], al
mov eax, dword [ebp - 0x4c]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_ReleaseDC]
call eax
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x35adfbca
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x90]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0xc3c027c2
sete cl
mov dword [ebp - 0x18c], ecx
mov eax, dword [ebp - 0x190]
mov ecx, dword [ebp - 0x18c]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0x8745920e
sete cl
mov dword [ebp - 0x124], ecx
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x124]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x25d17bcc
setl cl
mov dword [ebp - 0x22c], ecx
mov ecx, dword [ebp - 0x230]
mov edx, dword [ebp - 0x22c]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x35adfbca
sete cl
mov dword [ebp - 0x214], ecx
mov eax, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x214]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0x2340d27
sete cl
mov dword [ebp - 0x1ec], ecx
mov eax, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1ec]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0x20]
sub esp, 4
mov dword [esp], eax
call fcn.0040c700
add esp, 4
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x6290f9b6
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x10]
mov dword [eax], 0xf391dc95
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x100]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xac0ccfbc
setl cl
mov dword [ebp - 0x174], ecx
mov ecx, dword [ebp - 0x178]
mov edx, dword [ebp - 0x174]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x35adfbca
setl cl
mov dword [ebp - 0x21c], ecx
mov ecx, dword [ebp - 0x220]
mov edx, dword [ebp - 0x21c]
mov ecx, dword [ecx + edx*4]
jmp ecx
call fcn.0041d140
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x5d482276
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x118]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
call fcn.0041d140
mov eax, dword [ebp - 0x10]
mov dword [eax], 0xac0ccfbc
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0xdfee1290
sete cl
mov dword [ebp - 0x1a4], ecx
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x1a4]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0x7ed4c120
sete cl
mov dword [ebp - 0x274], ecx
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xac0ccfbc
sete cl
mov dword [ebp - 0x14c], ecx
mov eax, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x14c]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, byte [ebp - 0x17]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
sub eax, 0xf391dc95
sete cl
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1dc]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xb7449291
setl cl
mov dword [ebp - 0x1d4], ecx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1d4]
mov ecx, dword [ecx + edx*4]
jmp ecx
push eax
sub esp, 0x14
mov edi, esp
sub esp, 0x28
mov ebx, esp
push eax
sub esp, 0xc
mov dword [esp + 8], edi
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 4], 0x18
mov eax, dword [sym.imp.GDI32.dll_GetObjectW]
call eax
mov dword [ebx], 0x28
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 8]
neg eax
mov dword [ebx + 8], eax
mov word [ebx + 0xc], 1
mov ax, word [edi + 0x12]
mov word [ebx + 0xe], ax
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
movzx eax, word [ebx + 0xe]
shr eax, 3
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
imul ecx, edx
imul ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c6f0
add esp, 4
mov esi, eax
sub esp, 4
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_GetDC]
call eax
mov ecx, dword [edi + 8]
sub esp, 0x1c
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 8], 0
mov eax, dword [sym.imp.GDI32.dll_GetDIBits]
call eax
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x5d482276
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x70]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x3173dcfc
sete cl
mov dword [ebp - 0x20c], ecx
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x20c]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xb7449291
sete cl
mov dword [ebp - 0x17c], ecx
mov eax, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x17c]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x7f4cf733
setl cl
mov dword [ebp - 0x284], ecx
mov ecx, dword [ebp - 0x288]
mov edx, dword [ebp - 0x284]
mov ecx, dword [ecx + edx*4]
jmp ecx
call fcn.0041d140
mov eax, dword [ebp - 0x20]
sub esp, 4
mov dword [esp], eax
call fcn.0040c700
add esp, 4
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x7ed4c120
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x80]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x3173dcfc
setl cl
mov dword [ebp - 0x224], ecx
mov ecx, dword [ebp - 0x228]
mov edx, dword [ebp - 0x224]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0xe23e8377
sete cl
mov dword [ebp - 0x1ac], ecx
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1ac]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x2340d27
setl cl
mov dword [ebp - 0x1f4], ecx
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1f4]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x7b50f99f
mov byte [ebp - 0x16], 1
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x8f20ef0f
setl cl
mov dword [ebp - 0x144], ecx
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x144]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0xc3c027c2
setl cl
mov dword [ebp - 0x194], ecx
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp - 0x194]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x34]
sub ecx, eax
mov eax, 0xfad42bf0
jl 0x438e64
mov eax, 0x2340d27
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x6d2c46f7
sete cl
mov dword [ebp - 0x25c], ecx
mov eax, dword [ebp - 0x260]
mov ecx, dword [ebp - 0x25c]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, byte [ebp - 0x16]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], 0xb261af77
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xe28d7392
setl cl
mov dword [ebp - 0x1bc], ecx
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x7f4cf733
sete cl
mov dword [ebp - 0x27c], ecx
mov eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x27c]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0x25d17bcc
sete cl
mov dword [ebp - 0x204], ecx
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x204]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041d140
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x6290f9b6
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x120]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0xe28d7392
sete cl
mov dword [ebp - 0x1b4], ecx
mov eax, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1b4]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0x2b8]
mov ecx, dword [ebp - 0x30]
mov ebx, dword [eax + ecx*4]
mov edx, ebx
and edx, 0xff00ff00
mov esi, ebx
and esi, 0xff0000
shr esi, 0x10
or edx, esi
movzx esi, bl
shl esi, 0x10
or edx, esi
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x30]
inc eax
mov ecx, dword [ebp - 0x10]
mov dword [ecx], 0x8f20ef0f
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x44c43ee1
setl cl
mov dword [ebp - 0x29c], ecx
mov ecx, dword [ebp - 0x2a0]
mov edx, dword [ebp - 0x29c]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x2b4], eax
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x7f4cf733
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [ebp - 0x19]
test al, al
mov eax, 0xb7449291
jne 0x43902c
mov eax, 0xb261af77
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x108]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xb56a6edb
setl cl
mov dword [ebp - 0x164], ecx
mov ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 0x164]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x8f20ef0f
sete cl
mov dword [ebp - 0x12c], ecx
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x12c]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0x5d482276
sete cl
mov dword [ebp - 0x23c], ecx
mov eax, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x23c]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041d140
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x2c], eax
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x14], eax
push eax
mov eax, esp
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x2c]
sub esp, 0xc
mov dword [esp + 8], eax
mov edi, dword [ebp + 8]
mov dword [esp], edi
mov dword [esp + 4], 0x18
mov eax, dword [sym.imp.GDI32.dll_GetObjectW]
call eax
mov eax, dword [ebp - 0x14]
mov dword [eax], 0x28
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x2c]
add eax, 8
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
neg eax
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x14]
mov word [eax + 0xc], 1
mov eax, dword [ebp - 0x2c]
mov cx, word [eax + 0x12]
mov eax, dword [ebp - 0x14]
mov word [eax + 0xe], cx
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x10], 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x14], 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x18], 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x1c], 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x20], 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x24], 0
movzx eax, word [eax + 0xe]
shr eax, 3
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx]
imul ecx, edx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
imul ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c6f0
add esp, 4
mov dword [ebp - 0x20], eax
sub esp, 4
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_GetDC]
call eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x4c]
sub esp, 0x1c
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
mov dword [esp], esi
mov dword [esp + 0x18], 0
mov dword [esp + 8], 0
mov eax, dword [sym.imp.GDI32.dll_GetDIBits]
call eax
test eax, eax
setne byte [ebp - 0x19]
mov eax, dword [ebp - 0x10]
mov dword [eax], 0xdfee1290
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x110]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x38]
mov edx, eax
not edx
mov esi, ecx
and esi, edx
mov edx, ecx
not edx
mov edi, eax
and edi, edx
imul edi, esi
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, edi
mov ecx, dword [ebp - 0x34]
imul eax, ecx
mov ecx, dword [ebp - 0x20]
add ecx, eax
mov dword [ebp - 0x2b8], ecx
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x8f20ef0f
mov dword [ebp - 0x40], 0
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x10]
mov dword [eax], 0xbcf73603
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x78]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x44c43ee1
sete cl
mov dword [ebp - 0x234], ecx
mov eax, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x234]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0x10]
mov dword [eax], 0xf391dc95
mov eax, dword [ebp - 0x2b4]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ecx + eax*4]
jmp eax