Function at 0x438060
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x134
mov eax, dword [0x4d3d98]
mov dl, 1
cmp dl, byte [ecx + 1]
push ebx
sbb ebx, ebx
mov dword [esp + 0x88], ecx
and ebx, dword [0x4d3d9c]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ebx
push esi
push edi
test eax, eax
je 0x4380a9
push 1
push 0
push 0xffffffffffffffff
push 0
mov ecx, eax
call fcn.00475930
test ebx, ebx
je 0x4380bc
push 1
push 0
push 0xffffffffffffffff
push 0
mov ecx, ebx
call fcn.00475930
xorps xmm0, xmm0
lea edx, [esp + 0x80]
push 0
lea ecx, [esp + 0x80]
movlpd qword [esp + 0x80], xmm0
call fcn.00474000
mov ecx, dword [esp + 0x80]
add esp, 4
mov eax, dword [esp + 0x80]
xor ebx, ebx
mov edi, dword [ebp + 0x18]
add dword [ebp + 8], ecx
add dword [ebp + 0xc], eax
add dword [ebp + 0x10], ecx
add dword [ebp + 0x14], eax
push 0x2e
push edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x40], 0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
call fcn.0048ca9c
mov esi, eax
add esp, 8
test esi, esi
je 0x438181
add esi, 2
push 0x4c60a8
push esi
call fcn.0048f253
add esp, 8
test eax, eax
je 0x438169
push 0x4c60b0
push esi
call fcn.0048f253
add esp, 8
test eax, eax
je 0x438169
push 0x4c60b8
push esi
call fcn.0048f253
add esp, 8
test eax, eax
jne 0x438181
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x31
call esi
mov ebx, eax
push 0x32
mov dword [esp + 0x18], ebx
call esi
mov dword [esp + 0x1c], eax
mov esi, edi
movzx eax, word [esi]
cmp eax, 0x20
je 0x438190
cmp eax, 9
jne 0x438195
add esi, 2
jmp 0x438183
cmp eax, 0x2a
jne 0x43843f
nop
movzx eax, word [esi + 2]
add esi, 2
push eax
call fcn.004974c7
movzx eax, ax
add esp, 4
cmp eax, 0x48
je 0x4383e9
cmp eax, 0x57
je 0x4383af
push 4
push str.Icon
push esi
call fcn.00491336
add esp, 0xc
test eax, eax
jne 0x43820f
add esi, 8
mov ecx, esi
call fcn.0040ded0
test al, al
je 0x4381fd
push 0x10
push 0
push esi
call fcn.00492e76
add esp, 0xc
mov dword [esp + 0x38], eax
jmp 0x4382cf
push esi
call fcn.00492a15
add esp, 4
mov dword [esp + 0x38], eax
jmp 0x4382cf
push 5
push str.Trans
push esi
call fcn.00491336
add esp, 0xc
test eax, eax
jne 0x438368
push 0x1f
add esi, 0xa
lea eax, [esp + 0x104]
push esi
push eax
call fcn.00497e59
xor eax, eax
lea ebx, [esp + 0x10c]
mov word [esp + 0x14a], ax
add esp, 0xc
mov ax, word [esp + 0x100]
test ax, ax
je 0x43829c
movzx edi, ax
nop
mov ecx, 0x4bfc0c
mov edx, 0x20
nop word [eax + eax]
cmp di, dx
je 0x438293
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x438270
movzx eax, word [ebx + 2]
add ebx, 2
mov edi, eax
test ax, ax
jne 0x438260
jmp 0x43829c
test ebx, ebx
je 0x43829c
xor eax, eax
mov word [ebx], ax
lea ecx, [esp + 0x100]
call fcn.00473e30
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x438346
push 0x10
lea eax, [esp + 0x104]
push 0
push eax
call fcn.00492e76
add esp, 0xc
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x14]
test esi, esi
je 0x438315
movzx eax, word [esi]
test ax, ax
je 0x438315
mov edi, eax
nop dword [eax]
mov eax, 0x4bfc0c
mov edx, 0x20
nop word [eax + eax]
cmp di, dx
je 0x43841f
movzx ecx, word [eax + 2]
add eax, 2
mov edx, ecx
test cx, cx
jne 0x4382f0
movzx eax, word [esi + 2]
add esi, 2
mov edi, eax
test ax, ax
jne 0x4382e0
mov eax, dword [0x4ce8c8]
cmp byte [eax + 0x108], 0
jne 0x438db8
mov ecx, dword [0x4d166c]
push 1
push 0
push 0xffffffffffffffff
push 0x4bfc6c
call fcn.00475930
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
movzx ebx, cl
movzx eax, cx
shl ebx, 8
shr eax, 8
or ebx, eax
shr ecx, 0x10
shl ebx, 8
movzx eax, cl
or ebx, eax
mov dword [esp + 0x20], ebx
jmp 0x4382cb
mov ecx, esi
call fcn.0040ded0
test al, al
je 0x438382
push 0x10
push 0
push esi
call fcn.00492e76
add esp, 0xc
jmp 0x43838b
push esi
call fcn.00492a15
add esp, 4
xor ebx, ebx
test eax, eax
cmovns ebx, eax
mov dword [esp + 0x18], ebx
cmp ebx, 0xff
jle 0x4382cb
mov dword [esp + 0x18], 0xff
jmp 0x4382cb
lea edi, [esi + 2]
mov ecx, edi
call fcn.0040ded0
test al, al
je 0x4383d5
push 0x10
push 0
push edi
call fcn.00492e76
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x14], ebx
jmp 0x4382cf
push edi
call fcn.00492a15
mov ebx, eax
add esp, 4
mov dword [esp + 0x14], ebx
jmp 0x4382cf
lea edi, [esi + 2]
mov ecx, edi
call fcn.0040ded0
test al, al
je 0x43840d
push 0x10
push 0
push edi
call fcn.00492e76
add esp, 0xc
mov dword [esp + 0x1c], eax
jmp 0x4382cf
push edi
call fcn.00492a15
add esp, 4
mov dword [esp + 0x1c], eax
jmp 0x4382cf
lea edi, [esi + 2]
mov esi, edi
movzx eax, word [esi]
cmp eax, 0x20
je 0x438431
cmp eax, 9
jne 0x438436
add esi, 2
jmp 0x438424
cmp eax, 0x2a
je 0x4381a0
lea eax, [esp + 0x27]
mov edx, ebx
push eax
push 0
push dword [esp + 0x40]
lea eax, [esp + 0x38]
mov ecx, edi
push eax
push dword [esp + 0x2c]
call fcn.00474140
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x50], ebx
test ebx, ebx
je 0x438315
mov esi, dword [sym.imp.USER32.dll_GetDC]
push 0
call esi
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x4384a7
cmp byte [esp + 0x27], al
jne 0x438315
cmp dword [esp + 0x2c], 1
push ebx
jne 0x43849c
call dword [sym.imp.USER32.dll_DestroyIcon]
jmp 0x438315
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x438315
mov edi, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
xor ecx, ecx
cmp dword [esp + 0x2c], 1
mov dword [esp + 0x88], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x8c], ecx
mov byte [esp + 0x13], cl
jne 0x438685
lea eax, [esp + 0xd8]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetIconInfo]
test eax, eax
je 0x43852f
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x26]
mov ecx, dword [esp + 0xe4]
push 1
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.00437670
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 0x10
mov dword [esp + 0x34], eax
push dword [esp + 0xe8]
call ebx
push dword [esp + 0xe4]
call ebx
xor ebx, ebx
push ebx
call esi
mov esi, eax
push esi
mov dword [esp + 0x6c], esi
call edi
mov edi, eax
test edi, edi
je 0x43865c
lea eax, [esp + 0xec]
push eax
push dword [esp + 0x54]
call dword [sym.imp.USER32.dll_GetIconInfo]
test eax, eax
je 0x438655
lea eax, [esp + 0xc0]
push eax
push 0x18
push dword [esp + 0x104]
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x43863b
push dword [esp + 0xc8]
push dword [esp + 0xc8]
push esi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov ebx, eax
test ebx, ebx
je 0x43863b
push ebx
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x54], eax
test eax, eax
je 0x43863b
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xc8]
push 0xff000000
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xc0], ecx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, eax
lea eax, [esp + 0xb0]
push esi
push eax
push edi
call dword [sym.imp.USER32.dll_FillRect]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
push 3
push 0
push 0
push dword [esp + 0xd4]
push dword [esp + 0xd4]
push dword [esp + 0x64]
push 0
push 0
push edi
call dword [sym.imp.USER32.dll_DrawIconEx]
push dword [esp + 0x54]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, dword [esp + 0x68]
push dword [esp + 0xfc]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0xf8]
call dword [sym.imp.GDI32.dll_DeleteObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteDC]
push esi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
push dword [esp + 0x50]
call dword [sym.imp.USER32.dll_DestroyIcon]
mov dword [esp + 0x50], ebx
test ebx, ebx
je 0x438315
mov edi, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov eax, dword [esp + 0x4c]
push 8
lea ecx, [esp + 0x2a]
mov edx, eax
push ecx
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0x54]
push ecx
mov ecx, ebx
call fcn.00437670
add esp, 0x10
mov dword [esp + 0x30], eax
test eax, eax
je 0x438d3f
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
sub ebx, dword [ebp + 8]
sub esi, dword [ebp + 0xc]
inc ebx
push dword [esp + 0x4c]
inc esi
call edi
mov edi, eax
mov dword [esp + 0x88], edi
test edi, edi
je 0x438d3f
push esi
push ebx
push dword [esp + 0x54]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [esp + 0x74], eax
test eax, eax
je 0x438d3f
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x8c], eax
test eax, eax
je 0x438d3f
push 0xcc0020
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esp + 0x58]
push esi
push ebx
push 0
push 0
push edi
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x438d3f
mov ecx, dword [esp + 0x74]
lea eax, [esp + 0x3f]
push 8
push eax
lea eax, [esp + 0x74]
mov edx, edi
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00437670
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
je 0x438d3f
mov ebx, dword [esp + 0x44]
mov eax, ebx
mov edi, dword [esp + 0x48]
imul edi, dword [esp + 0x64]
imul eax, dword [esp + 0x6c]
cmp byte [esp + 0x26], 0
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], eax
jne 0x438781
cmp byte [esp + 0x3f], 0
je 0x4388b5
mov eax, dword [esp + 0x20]
mov esi, eax
and esi, 0xf8f8f8
cmp eax, 0xffffffff
cmove esi, eax
mov eax, dword [esp + 0x40]
xor ecx, ecx
test eax, eax
jle 0x43881e
cmp eax, 0x10
jb 0x43880e
and eax, reloc.OLEAUT32.dll_SafeArrayDestroy
jns 0x4387b2
dec eax
or eax, 0xfffffff0
inc eax
mov edx, dword [esp + 0x40]
movaps xmm2, xmmword [0x4c96e0]
sub edx, eax
mov eax, dword [esp + 0x14]
add eax, 0x20
movups xmm0, xmmword [eax - 0x20]
lea eax, [eax + 0x40]
add ecx, 0x10
movaps xmm1, xmm2
pand xmm1, xmm0
movups xmmword [eax - 0x60], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [eax - 0x50]
pand xmm0, xmm2
movups xmmword [eax - 0x50], xmm0
movups xmm0, xmmword [eax - 0x40]
pand xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
pand xmm0, xmm2
movups xmmword [eax - 0x30], xmm0
cmp ecx, edx
jl 0x4387c6
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
cmp ecx, eax
jge 0x43881e
and dword [edx + ecx*4], 0xf8f8f8
inc ecx
cmp ecx, eax
jl 0x438812
xor ecx, ecx
mov edx, esi
mov dword [esp + 0x20], edx
test edi, edi
jle 0x4388d1
cmp edi, 0x10
jb 0x438893
mov eax, edi
and eax, reloc.OLEAUT32.dll_SafeArrayDestroy
jns 0x438841
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm2, xmmword [0x4c96e0]
mov edx, edi
sub edx, eax
mov eax, dword [esp + 0x30]
add eax, 0x20
movups xmm0, xmmword [eax - 0x20]
lea eax, [eax + 0x40]
add ecx, 0x10
movaps xmm1, xmm2
pand xmm1, xmm0
movups xmmword [eax - 0x60], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [eax - 0x50]
pand xmm0, xmm2
movups xmmword [eax - 0x50], xmm0
movups xmm0, xmmword [eax - 0x40]
pand xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
pand xmm0, xmm2
movups xmmword [eax - 0x30], xmm0
cmp ecx, edx
jl 0x438853
mov eax, dword [esp + 0x30]
mov edx, esi
mov dword [esp + 0x20], edx
cmp ecx, edi
jge 0x4388bd
and dword [eax + ecx*4], 0xf8f8f8
inc ecx
cmp ecx, edi
jl 0x4388a1
mov edx, esi
mov dword [esp + 0x20], edx
jmp 0x4388bd
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
test edi, edi
jle 0x4388d1
add eax, 3
mov ecx, edi
mov byte [eax], 0
lea eax, [eax + 4]
sub ecx, 1
jne 0x4388c6
cmp dword [esp + 0x18], 1
jge 0x438a3b
mov esi, dword [esp + 0x40]
test esi, esi
jle 0x4388fb
mov eax, dword [esp + 0x14]
mov ecx, esi
add eax, 3
nop dword [eax]
mov byte [eax], 0
lea eax, [eax + 4]
sub ecx, 1
jne 0x4388f0
xor edi, edi
mov dword [esp + 0x28], edi
test esi, esi
jle 0x438d1f
mov eax, dword [esp + 0x30]
xor esi, esi
mov dword [esp + 0x18], esi
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
nop dword [eax]
mov ecx, dword [esp + 0x14]
cmp dword [esi + ecx], eax
je 0x43893e
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x438936
cmp dword [ecx], 0
jne 0x43893e
cmp eax, edx
jne 0x438a20
mov eax, edi
mov ecx, dword [esp + 0x6c]
cdq
idiv ebx
sub ecx, eax
cmp dword [esp + 0x64], ecx
jg 0x438a18
mov eax, ebx
sub eax, edx
cmp dword [esp + 0x48], eax
jg 0x438a18
xor edx, edx
mov byte [esp + 0x13], 1
xor ebx, ebx
mov dword [esp + 0x58], ebx
cmp dword [esp + 0x38], edx
jle 0x438c5e
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x5c], eax
mov eax, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x30]
sub esi, ecx
mov byte [esp + 0x13], 1
mov dword [esp + 0x54], esi
nop dword [eax]
mov ebx, dword [esp + 0x14]
mov esi, dword [esi + ecx]
cmp dword [eax + ebx], esi
mov ebx, dword [esp + 0x58]
je 0x4389c2
cmp dword [esp + 0x34], 0
je 0x4389bc
cmp dword [ecx], 0
jne 0x4389c2
cmp esi, dword [esp + 0x20]
jne 0x438a0c
inc edx
cmp edx, dword [esp + 0x48]
jge 0x4389cf
inc edi
add eax, 4
jmp 0x4389f4
mov edi, dword [esp + 0x44]
xor edx, edx
mov esi, dword [esp + 0x2c]
lea eax, [edi*4]
add esi, eax
mov eax, dword [esp + 0x5c]
add eax, edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x5c], eax
mov edi, eax
mov eax, esi
inc ebx
add ecx, 4
mov dword [esp + 0x58], ebx
cmp ebx, dword [esp + 0x38]
jge 0x438c5e
mov esi, dword [esp + 0x54]
jmp 0x4389a0
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
inc edi
add esi, 4
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], esi
cmp edi, dword [esp + 0x40]
jl 0x438920
jmp 0x438d1f
xor edi, edi
mov dword [esp + 0x28], edi
cmp dword [esp + 0x40], edi
jle 0x438d1f
xor esi, esi
mov dword [esp + 0x2c], esi
mov eax, edi
mov ecx, dword [esp + 0x6c]
cdq
idiv ebx
sub ecx, eax
cmp dword [esp + 0x64], ecx
jg 0x438d09
mov eax, ebx
sub eax, edx
cmp dword [esp + 0x48], eax
jg 0x438d09
xor eax, eax
mov byte [esp + 0x13], 1
mov dword [esp + 0x78], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edi
cmp dword [esp + 0x38], eax
jle 0x438c5e
mov edx, dword [esp + 0x30]
lea eax, [ebx*4]
mov ecx, dword [esp + 0x2c]
mov esi, edx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x34]
sub eax, edx
mov byte [esp + 0x13], 1
mov dword [esp + 0x68], edi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0xac], eax
nop word [eax + eax]
movzx eax, word [esi]
mov dh, byte [esi + 2]
mov ebx, eax
mov dword [esp + 0x1c], eax
mov al, dh
sub al, byte [esp + 0x18]
shr ebx, 8
movzx eax, al
mov dword [esp + 0x60], ebx
xor ebx, ebx
movzx ecx, dh
cmp dword [esp + 0x18], ecx
mov dword [esp + 0x70], 0
cmovle ebx, eax
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x60]
mov al, bl
sub al, byte [esp + 0x18]
movzx edi, bl
cmp dword [esp + 0x18], edi
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x70]
movzx eax, al
cmovle edi, eax
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], edi
movzx edi, al
sub al, byte [esp + 0x18]
cmp dword [esp + 0x18], edi
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0x60]
movzx eax, al
cmovle edi, eax
mov eax, 0xff
sub eax, ecx
mov dword [esp + 0x60], edi
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x94]
cmp ecx, eax
jle 0x438b74
or dh, 0xff
jmp 0x438b76
add dh, cl
mov eax, 0xff
sub eax, edi
cmp ecx, eax
jle 0x438b86
or bl, 0xff
jmp 0x438b88
add bl, cl
mov eax, 0xff
sub eax, dword [esp + 0x98]
cmp ecx, eax
jle 0x438b9f
mov byte [esp + 0x1c], 0xff
jmp 0x438ba3
add byte [esp + 0x1c], cl
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x5c]
mov dl, byte [edi + eax + 2]
movzx ecx, word [edi + eax]
mov eax, ecx
shr eax, 8
cmp dl, byte [esp + 0x9c]
jb 0x438bdd
cmp dl, dh
ja 0x438bdd
cmp al, byte [esp + 0x70]
jb 0x438bdd
cmp al, bl
ja 0x438bdd
cmp cl, byte [esp + 0x60]
jb 0x438bdd
mov eax, dword [esp + 0x1c]
cmp cl, al
jbe 0x438bfd
cmp dword [esp + 0x34], 0
je 0x438bf1
mov eax, dword [esp + 0xac]
cmp dword [eax + esi], 0
jne 0x438bfd
mov eax, dword [esp + 0x20]
cmp dword [esi], eax
jne 0x438cfd
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x48]
jge 0x438c19
inc dword [esp + 0x58]
add edi, 4
mov dword [esp + 0x5c], edi
jmp 0x438c48
mov ecx, dword [esp + 0x84]
xor eax, eax
add ecx, dword [esp + 0xa0]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x68]
add eax, dword [esp + 0x44]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x54]
add esi, 4
inc eax
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x38]
jl 0x438ad0
mov ebx, dword [esp + 0x28]
push dword [esp + 0x4c]
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp byte [esp + 0x27], 0
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
jne 0x438c81
push dword [esp + 0x50]
call edi
mov esi, dword [esp + 0x88]
test esi, esi
je 0x438ca6
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x438c9f
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [esp + 0x74]
test eax, eax
je 0x438cb1
push eax
call edi
mov eax, dword [esp + 0x30]
test eax, eax
je 0x438cc2
push eax
call fcn.004914e4
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x438cd3
push eax
call fcn.004914e4
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x438315
push eax
call fcn.004914e4
add esp, 4
cmp byte [esp + 0x13], 0
jne 0x438d4b
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x2c]
inc edi
add esi, 4
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
cmp edi, dword [esp + 0x40]
jl 0x438a51
mov ecx, dword [0x4d166c]
push 1
push 0
push 0xffffffffffffffff
push 0x4bf994
call fcn.00475930
mov byte [esp + 0x13], 0
jmp 0x438c5e
mov ebx, dword [esp + 0x90]
jmp 0x438c62
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0x44]
test ecx, ecx
je 0x438d75
mov eax, ebx
cdq
idiv esi
push 0x18
sub edx, dword [esp + 0x80]
add edx, dword [ebp + 8]
mov eax, edx
cdq
push edx
push eax
call fcn.00401ac0
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x438d99
mov eax, ebx
cdq
idiv esi
push 0x18
sub eax, dword [esp + 0x84]
add eax, dword [ebp + 0xc]
cdq
push edx
push eax
call fcn.00401ac0
mov ecx, dword [0x4d166c]
push 1
push 0
push 0xffffffffffffffff
push 0x4ac300
call fcn.00475930
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [esp + 0x90]
push 0x4ac22c
push 0
push 0x4bfc6c
call fcn.0042cf00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14