Function at 0x40a420
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x535621
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
mov eax, dword [0x584460]
xor eax, esp
mov dword [esp + 0xe0], eax
push ebx
push esi
push edi
mov eax, dword [0x584460]
xor eax, esp
push eax
lea eax, [esp + 0xf8]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, ecx
lea ecx, [esp + 0x74]
mov dword [esp + 0x70], eax
call fcn.00425850
xor esi, esi
mov dword [esp + 0x100], esi
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], vtable.CBitmap.0
mov byte [esp + 0x100], 1
mov edx, dword [edi + 0x20]
lea ecx, [esp + 0xb0]
push ecx
push edx
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], esi
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, edi
call fcn.00426bce
mov ecx, dword [edi + 0xb4]
mov edx, dword [esp + 0xb4]
neg eax
sbb ebx, ebx
sub ecx, dword [edi + 0xb0]
mov eax, dword [edi + 0x80]
sar ecx, 2
imul eax, ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xbc]
sub ecx, edx
inc ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x3c], ecx
cmp ecx, eax
jg 0x40a50e
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0xec], edx
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xe8], ecx
cmp eax, esi
jne 0x40a556
xor eax, eax
jmp 0x40a559
mov eax, dword [eax + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x78]
call fcn.00425e85
mov eax, dword [esp + 0xb8]
sub eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x70]
push ecx
push eax
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esp + 0x98]
call fcn.00426159
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x78]
push ecx
push edx
call fcn.004261ea
mov ecx, dword [esp + 0x78]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x3c]
push eax
push ecx
mov dword [esp + 0x44], esi
call dword [sym.imp.gdiplus.dll_GdipCreateFromHDC]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], eax
push 2
push eax
mov byte [esp + 0x108], 2
call dword [sym.imp.gdiplus.dll_GdipSetSmoothingMode]
cmp eax, esi
je 0x40a5eb
mov dword [esp + 0x38], eax
push 0xf0f0f0
lea edx, [esp + 0xe4]
push edx
lea ecx, [esp + 0x7c]
call fcn.004279e8
mov eax, dword [edi + 0xa4]
sub eax, dword [edi + 0xa0]
mov dword [esp + 0xc0], esi
sar eax, 5
mov dword [esp + 0x68], eax
mov eax, dword [edi + 0x94]
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], esi
cmp dword [eax - 4], 1
jle 0x40a64b
mov eax, dword [eax - 0xc]
push eax
lea ecx, [edi + 0x94]
call fcn.00402c80
mov ecx, dword [edi + 0x94]
fild dword [edi + 0x98]
xor edx, edx
cmp dword [edi + 0x9c], edx
lea esi, [esp + 0xa8]
setne dl
push edx
push ecx
fstp dword [esp]
call fcn.004068c0
push 0xc
call dword [sym.imp.gdiplus.dll_GdipAlloc]
mov esi, eax
test ebx, ebx
je 0x40a6b6
test esi, esi
je 0x40a6eb
lea eax, [esp + 0x44]
push eax
push 0xffdcdcdc
mov dword [esi + 8], 6
mov dword [esi], vtable.Gdiplus::SolidBrush.0
mov dword [esp + 0x4c], 0
call dword [sym.imp.gdiplus.dll_GdipCreateSolidFill]
mov ecx, dword [esp + 0x44]
mov dword [esi + 8], eax
mov dword [esi + 4], ecx
jmp 0x40a6ed
test esi, esi
je 0x40a6eb
lea edx, [esp + 0x44]
push edx
push 0xff3a3939
mov dword [esi + 8], 6
mov dword [esi], vtable.Gdiplus::SolidBrush.0
mov dword [esp + 0x4c], 0
call dword [sym.imp.gdiplus.dll_GdipCreateSolidFill]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esi + 4], eax
jmp 0x40a6ed
xor esi, esi
lea ecx, [esp + 0x5c]
push ecx
push 0
mov dword [esp + 0x4c], esi
mov esi, dword [sym.imp.gdiplus.dll_GdipCreateStringFormat]
push 0
mov dword [esp + 0x68], 0
call esi
mov dword [esp + 0x60], eax
mov byte [esp + 0x100], 4
mov edx, dword [esp + 0x5c]
push 3
push edx
call dword [sym.imp.gdiplus.dll_GdipSetStringFormatTrimming]
test eax, eax
je 0x40a72b
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x5c]
push 0x1000
push eax
call dword [sym.imp.gdiplus.dll_GdipSetStringFormatFlags]
test eax, eax
je 0x40a743
mov dword [esp + 0x60], eax
cmp dword [esp + 0x6c], 0
jne 0x40a892
lea ecx, [esp + 0x54]
push ecx
push 0
push 0
mov dword [esp + 0x60], 0
call esi
mov edx, dword [esp + 0x54]
push 1
push edx
mov dword [esp + 0x60], eax
call dword [sym.imp.gdiplus.dll_GdipSetStringFormatAlign]
test eax, eax
je 0x40a77a
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x54]
push 1
push eax
call dword [sym.imp.gdiplus.dll_GdipSetStringFormatLineAlign]
test eax, eax
je 0x40a78f
mov dword [esp + 0x58], eax
fld dword [0x56574c]
push 0
push ecx
mov ecx, dword [0x58c450]
fstp dword [esp]
lea esi, [esp + 0x30]
call fcn.004068c0
lea ecx, [esp + 0x24]
push ecx
push 0xff747474
mov dword [esp + 0x2c], 0
call dword [sym.imp.gdiplus.dll_GdipCreateSolidFill]
fild dword [esp + 0xb0]
mov edx, dword [esp + 0xb8]
sub edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xbc]
fstp dword [esp + 0x64]
fild dword [esp + 0xb4]
sub ecx, dword [edi + 0x7c]
mov eax, dword [esp + 0x24]
sub ecx, dword [esp + 0xb4]
fstp dword [esp + 0x68]
mov dword [esp + 0x4c], edx
fild dword [esp + 0x4c]
mov edx, dword [esp + 0x54]
push eax
mov dword [esp + 0x50], ecx
mov ecx, dword [edi + 0x90]
fstp dword [esp + 0x18]
fild dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x30]
mov esi, eax
fstp dword [esp + 0x54]
lea eax, [esp + 0xd8]
fld dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x48]
fstp dword [esp + 0xdc]
fld dword [esp + 0x74]
push edx
fstp dword [esp + 0xe4]
push 0xffffffffffffffff
fld dword [esp + 0x28]
push ecx
fstp dword [esp + 0xf0]
push eax
fld dword [esp + 0x68]
fstp dword [esp + 0xf8]
call dword [sym.imp.gdiplus.dll_GdipDrawString]
test eax, eax
je 0x40a870
mov dword [esp + 0x38], eax
push esi
call dword [sym.imp.gdiplus.dll_GdipDeleteBrush]
mov ecx, dword [esp + 0x28]
push ecx
call dword [sym.imp.gdiplus.dll_GdipDeleteFont]
mov edx, dword [esp + 0x54]
push edx
call dword [sym.imp.gdiplus.dll_GdipDeleteStringFormat]
jmp 0x40b6bb
mov eax, dword [esp + 0x5c]
push 0
push eax
call dword [sym.imp.gdiplus.dll_GdipSetStringFormatAlign]
test eax, eax
je 0x40a8a7
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x5c]
push 1
push ecx
call dword [sym.imp.gdiplus.dll_GdipSetStringFormatLineAlign]
test eax, eax
je 0x40a8bc
mov dword [esp + 0x60], eax
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x48], 0
jle 0x40b6b2
jmp 0x40a8d8
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x48]
push edx
mov ecx, edi
call fcn.00409970
test eax, eax
je 0x40b69f
mov ecx, dword [edi + 0x80]
mov edx, dword [esp + 0xb0]
mov eax, ecx
imul eax, dword [esp + 0x48]
add ecx, eax
push ecx
mov ecx, dword [esp + 0xbc]
push ecx
push eax
mov dword [esp + 0x2c], eax
push edx
lea eax, [esp + 0xd0]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x48]
cmp dword [edi + 0x180], eax
jne 0x40a9f2
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], eax
test ebx, ebx
je 0x40a975
push 0xf0f0f0
jmp 0x40aa4e
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
push 0xfff5e8
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x7c]
mov dword [esp + 0xe4], eax
call fcn.004279e8
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xdc], eax
sub eax, ecx
mov dword [esp + 0xd0], edx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0xd4], ecx
add eax, ecx
push 0xfff3db
lea ecx, [esp + 0xd4]
mov dword [esp + 0xd8], eax
push ecx
jmp 0x40aa56
cmp dword [edi + 0x190], eax
jne 0x40aa20
lea ecx, [esp + 0x74]
test ebx, ebx
je 0x40aa11
push 0xffffff
lea edx, [esp + 0xc4]
push edx
jmp 0x40aa5a
push 0xfff3dc
lea eax, [esp + 0xc4]
push eax
jmp 0x40aa5a
cmp dword [esp + 0x6c], 2
je 0x40aa49
test al, 1
jle 0x40aa3a
push 0xf4f2f0
lea ecx, [esp + 0xc4]
push ecx
jmp 0x40aa56
push 0xffffff
lea edx, [esp + 0xc4]
push edx
jmp 0x40aa56
push 0xffffff
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x7c]
call fcn.004279e8
mov ecx, dword [edi + 0xb0]
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + edx*4]
xor ecx, ecx
mov dword [esp + 0x3c], eax
cmp eax, ecx
je 0x40b69f
mov dword [esp + 0x30], ecx
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x68], ecx
jle 0x40b496
fild dword [esp + 0x20]
fstp dword [esp + 0xa0]
mov esi, dword [esp + 0x50]
mov eax, esi
shl eax, 5
mov dword [esp + 0x54], eax
add eax, dword [edi + 0xa0]
xor ebx, ebx
fild dword [eax + 8]
mov ecx, dword [eax]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x40], ebx
fstp dword [esp + 0x14]
fild dword [edi + 0x80]
fstp dword [esp + 0x1c]
fild dword [esp + 0x30]
fstp dword [esp + 0x84]
fld dword [esp + 0xa0]
fstp dword [esp + 0x88]
fld dword [esp + 0x14]
fst dword [esp + 0x8c]
fld dword [esp + 0x1c]
fstp dword [esp + 0x90]
cmp dword [edi + 0x184], esi
jne 0x40ab12
mov edx, dword [edi + 0x188]
cmp edx, dword [esp + 0x48]
jne 0x40ab12
mov dword [esp + 0x24], 1
cmp dword [edi + 0x18c], esi
jne 0x40ab2e
mov eax, dword [esp + 0x48]
cmp dword [edi + 0x190], eax
jne 0x40ab2e
mov dword [esp + 0x40], 1
cmp ecx, 1
jne 0x40ab87
mov edx, dword [esp + 0x3c]
fstp st(0)
mov eax, dword [edx + 4]
lea ecx, [esi + esi*4]
mov ecx, dword [eax + ecx*4 + 0x10]
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x40ab50
mov eax, dword [eax + 4]
jmp 0x40ab52
xor eax, eax
mov edx, dword [esp + 0x5c]
push eax
push edx
mov edx, dword [esp + 0xb0]
lea eax, [esp + 0x8c]
push eax
mov eax, dword [esp + 0x40]
push edx
push 0xffffffffffffffff
push ecx
push eax
call dword [sym.imp.gdiplus.dll_GdipDrawString]
cmp eax, ebx
je case.default.0x40b2b2
mov dword [esp + 0x38], eax
jmp case.default.0x40b2b2
cmp ecx, 2
jne 0x40adcf
mov esi, dword [edi + 0xcc]
fstp st(0)
mov edx, dword [esi + 4]
lea ecx, [esp + 0x24]
push ecx
push edx
mov dword [esp + 0x2c], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
cmp eax, ebx
je 0x40abb2
mov dword [esi + 8], eax
mov eax, dword [esp + 0x24]
fld dword [esp + 0x8c]
fild dword [esp + 0x24]
test eax, eax
jns 0x40abcb
fadd dword [0x5656cc]
fsubp st(1)
fmul qword [0x565588]
call fcn.00516190
mov esi, dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0xcc]
mov edx, dword [eax + 4]
lea ecx, [esp + 0x40]
push ecx
push edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], ebx
call esi
cmp eax, ebx
je 0x40ac06
mov ecx, dword [esp + 0x14]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x40]
fld dword [esp + 0x90]
fild dword [esp + 0x40]
test edx, edx
jns 0x40ac1f
fadd dword [0x5656cc]
fsubp st(1)
fmul qword [0x565588]
call fcn.00516190
mov dword [esp + 0x40], eax
cmp dword [esp + 0x9c], ebx
je 0x40acd3
mov eax, dword [edi + 0xd0]
mov edx, dword [eax + 4]
lea ecx, [esp + 0x1c]
push ecx
push edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebx
call esi
cmp eax, ebx
je 0x40ac61
mov ecx, dword [esp + 0x14]
mov dword [ecx + 8], eax
mov esi, dword [edi + 0xd0]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
cmp eax, ebx
je 0x40ac89
mov dword [esi + 8], eax
mov eax, dword [edi + 0xd0]
cmp eax, ebx
je 0x40ac98
mov eax, dword [eax + 4]
jmp 0x40ac9a
xor eax, eax
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x48]
add ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x3c]
push ecx
push eax
push edx
call dword [sym.imp.gdiplus.dll_GdipDrawImageRectI]
cmp eax, ebx
je case.default.0x40b2b2
mov dword [esp + 0x38], eax
jmp case.default.0x40b2b2
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
mov edx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], ebx
push ecx
cmp dword [edx + eax*4 + 4], ebx
je 0x40ad42
mov eax, dword [edi + 0xcc]
mov edx, dword [eax + 4]
push edx
mov dword [esp + 0x30], eax
call esi
cmp eax, ebx
je 0x40ad0b
mov ecx, dword [esp + 0x28]
mov dword [ecx + 8], eax
mov esi, dword [edi + 0xcc]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
push ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
cmp eax, ebx
je 0x40ad33
mov dword [esi + 8], eax
mov eax, dword [edi + 0xcc]
cmp eax, ebx
je 0x40ad94
mov eax, dword [eax + 4]
jmp 0x40ad96
mov eax, dword [edi + 0xd0]
mov edx, dword [eax + 4]
push edx
mov dword [esp + 0x30], eax
call esi
cmp eax, ebx
je 0x40ad5d
mov ecx, dword [esp + 0x28]
mov dword [ecx + 8], eax
mov esi, dword [edi + 0xd0]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
push ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
cmp eax, ebx
je 0x40ad85
mov dword [esi + 8], eax
mov eax, dword [edi + 0xd0]
cmp eax, ebx
je 0x40ad94
mov eax, dword [eax + 4]
jmp 0x40ad96
xor eax, eax
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x48]
add ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x3c]
push ecx
push eax
push edx
call dword [sym.imp.gdiplus.dll_GdipDrawImageRectI]
cmp eax, ebx
je case.default.0x40b2b2
mov dword [esp + 0x38], eax
jmp case.default.0x40b2b2
cmp ecx, 3
jne 0x40b083
mov esi, dword [edi + 0xd4]
fstp st(0)
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
cmp eax, ebx
je 0x40adfa
mov dword [esi + 8], eax
mov edx, dword [esp + 0x14]
fld dword [esp + 0x8c]
fild dword [esp + 0x14]
test edx, edx
jns 0x40ae13
fadd dword [0x5656cc]
fsubp st(1)
fmul qword [0x565588]
call fcn.00516190
mov esi, dword [edi + 0xd4]
mov ecx, dword [esi + 4]
mov ebx, eax
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], 0
call dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
test eax, eax
je 0x40ae46
mov dword [esi + 8], eax
mov edx, dword [esp + 0x14]
fld dword [esp + 0x90]
fild dword [esp + 0x14]
test edx, edx
jns 0x40ae5f
fadd dword [0x5656cc]
fsubp st(1)
fmul qword [0x565588]
call fcn.00516190
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 4]
mov esi, eax
mov eax, dword [esp + 0x50]
lea eax, [eax + eax*4]
cmp dword [edx + eax*4 + 4], 0
je 0x40af79
cmp dword [esp + 0x24], 0
je 0x40af04
mov eax, dword [edi + 0xdc]
mov edx, dword [eax + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], 0
call dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
test eax, eax
je 0x40aeba
mov ecx, dword [esp + 0x28]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0xdc]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 4]
push ecx
push edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], 0
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
test eax, eax
je 0x40aeee
mov ecx, dword [esp + 0x28]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0xdc]
test eax, eax
je 0x40aff3
mov eax, dword [eax + 4]
jmp 0x40aff5
cmp dword [esp + 0x40], 0
je 0x40af42
mov ecx, dword [edi + 0xe4]
call fcn.004015c0
mov ecx, dword [edi + 0xe4]
push eax
call fcn.00401590
add esi, dword [esp + 0x24]
add ebx, dword [esp + 0x34]
mov edx, dword [edi + 0xe4]
push eax
push esi
push ebx
push edx
lea ecx, [esp + 0x48]
call fcn.004015f0
jmp case.default.0x40b2b2
mov ecx, dword [edi + 0xd8]
call fcn.004015c0
mov ecx, dword [edi + 0xd8]
push eax
call fcn.00401590
add esi, dword [esp + 0x24]
add ebx, dword [esp + 0x34]
mov edx, dword [edi + 0xd8]
push eax
push esi
push ebx
push edx
lea ecx, [esp + 0x48]
call fcn.004015f0
jmp case.default.0x40b2b2
cmp dword [esp + 0x24], 0
je 0x40b00e
mov eax, dword [edi + 0xdc]
mov edx, dword [eax + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], 0
call dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
test eax, eax
je 0x40afb0
mov ecx, dword [esp + 0x28]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0xdc]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 4]
push ecx
push edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], 0
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
test eax, eax
je 0x40afe4
mov ecx, dword [esp + 0x28]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0xdc]
test eax, eax
je 0x40aff3
mov eax, dword [eax + 4]
jmp 0x40aff5
xor eax, eax
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
add ebx, dword [esp + 0x30]
push edx
push ecx
push esi
push ebx
jmp 0x40b1b7
cmp dword [esp + 0x40], 0
je 0x40b04c
mov ecx, dword [edi + 0xe0]
call fcn.004015c0
mov ecx, dword [edi + 0xe0]
push eax
call fcn.00401590
add esi, dword [esp + 0x24]
add ebx, dword [esp + 0x34]
mov edx, dword [edi + 0xe0]
push eax
push esi
push ebx
push edx
lea ecx, [esp + 0x48]
call fcn.004015f0
jmp case.default.0x40b2b2
mov ecx, dword [edi + 0xd4]
call fcn.004015c0
mov ecx, dword [edi + 0xd4]
push eax
call fcn.00401590
add esi, dword [esp + 0x24]
add ebx, dword [esp + 0x34]
mov edx, dword [edi + 0xd4]
push eax
push esi
push ebx
push edx
lea ecx, [esp + 0x48]
call fcn.004015f0
jmp case.default.0x40b2b2
cmp ecx, 4
jne 0x40b1d4
mov eax, dword [edi + 0xf0]
fstp st(0)
mov edx, dword [eax + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
cmp eax, ebx
je 0x40b0b6
mov ecx, dword [esp + 0x28]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x14]
fld dword [esp + 0x8c]
fild dword [esp + 0x14]
test edx, edx
jns 0x40b0cf
fadd dword [0x5656cc]
fsubp st(1)
fmul qword [0x565588]
call fcn.00516190
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0xf0]
mov edx, dword [eax + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
cmp eax, ebx
je 0x40b108
mov ecx, dword [esp + 0x28]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x14]
fld dword [esp + 0x90]
fild dword [esp + 0x14]
test edx, edx
jns 0x40b121
fadd dword [0x5656cc]
fsubp st(1)
fmul qword [0x565588]
call fcn.00516190
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 4]
mov dword [esp + 0x28], eax
lea eax, [esi + esi*4]
cmp dword [edx + eax*4 + 4], ebx
je case.default.0x40b2b2
mov esi, dword [edi + 0xf0]
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
test eax, eax
je 0x40b166
mov dword [esi + 8], eax
mov esi, dword [edi + 0xf0]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x14]
lea edx, [esp + 0x1c]
push edx
push eax
mov dword [esp + 0x24], 0
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
test eax, eax
je 0x40b18e
mov dword [esi + 8], eax
mov eax, dword [edi + 0xf0]
test eax, eax
je 0x40b19d
mov eax, dword [eax + 4]
jmp 0x40b19f
xor eax, eax
mov ecx, dword [esp + 0x1c]
push ebx
push ecx
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x3c]
push ecx
mov edx, dword [esp + 0x44]
push eax
push edx
call dword [sym.imp.gdiplus.dll_GdipDrawImageRectI]
test eax, eax
je case.default.0x40b2b2
mov dword [esp + 0x38], eax
jmp case.default.0x40b2b2
cmp ecx, 5
jne 0x40b395
mov esi, dword [edi + 0x100]
fstp st(0)
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageWidth]
cmp eax, ebx
je 0x40b1ff
mov dword [esi + 8], eax
mov edx, dword [esp + 0x14]
fld dword [esp + 0x8c]
fild dword [esp + 0x14]
test edx, edx
jns 0x40b218
fadd dword [0x5656cc]
fsubp st(1)
fmul qword [0x565588]
call fcn.00516190
mov esi, dword [edi + 0x100]
mov ecx, dword [esi + 4]
mov ebx, eax
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], 0
call dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
test eax, eax
je 0x40b24b
mov dword [esi + 8], eax
mov edx, dword [esp + 0x14]
fld dword [esp + 0x90]
fild dword [esp + 0x14]
test edx, edx
jns 0x40b264
fadd dword [0x5656cc]
fsubp st(1)
fmul qword [0x565588]
call fcn.00516190
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 4]
mov esi, eax
mov eax, dword [esp + 0x50]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
cmp eax, 0x4b
jl 0x40b291
mov eax, 4
jmp 0x40b2a8
cmp eax, 0x32
jl 0x40b29d
mov eax, 3
jmp 0x40b2a8
xor ecx, ecx
cmp eax, 0x19
setge cl
lea eax, [ecx + 1]
dec eax
cmp eax, 3
ja case.default.0x40b2b2
jmp dword [eax*4 + 0x40b804]
mov ecx, dword [edi + 0xf4]
call fcn.004015c0
mov ecx, dword [edi + 0xf4]
push eax
call fcn.00401590
add esi, dword [esp + 0x24]
add ebx, dword [esp + 0x34]
mov ecx, dword [edi + 0xf4]
push eax
push esi
push ebx
push ecx
lea ecx, [esp + 0x48]
call fcn.004015f0
jmp case.default.0x40b2b2
mov ecx, dword [edi + 0xf8]
call fcn.004015c0
mov ecx, dword [edi + 0xf8]
push eax
call fcn.00401590
add esi, dword [esp + 0x24]
add ebx, dword [esp + 0x34]
mov ecx, dword [edi + 0xf8]
push eax
push esi
push ebx
push ecx
lea ecx, [esp + 0x48]
call fcn.004015f0
jmp case.default.0x40b2b2
mov ecx, dword [edi + 0xfc]
call fcn.004015c0
mov ecx, dword [edi + 0xfc]
push eax
call fcn.00401590
add esi, dword [esp + 0x24]
add ebx, dword [esp + 0x34]
mov ecx, dword [edi + 0xfc]
push eax
push esi
push ebx
push ecx
lea ecx, [esp + 0x48]
call fcn.004015f0
jmp case.default.0x40b2b2
mov ecx, dword [edi + 0x100]
call fcn.004015c0
mov ecx, dword [edi + 0x100]
push eax
call fcn.00401590
add esi, dword [esp + 0x24]
add ebx, dword [esp + 0x34]
mov ecx, dword [edi + 0x100]
push eax
push esi
push ebx
push ecx
lea ecx, [esp + 0x48]
call fcn.004015f0
jmp case.default.0x40b2b2
cmp ecx, 6
jne 0x40b46f
mov eax, dword [esp + 0x50]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx*4 + 0xc]
test eax, eax
je 0x40b46f
cmp dword [eax], ebx
je 0x40b46f
mov esi, dword [eax]
fstp qword [esp + 0x14]
mov ecx, esi
call fcn.00401590
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
test eax, eax
jns 0x40b3df
fadd dword [0x5656cc]
fsubr qword [esp + 0x14]
fmul qword [0x565588]
call fcn.00516190
fld dword [esp + 0x90]
mov ecx, esi
fstp qword [esp + 0x14]
mov ebx, eax
call fcn.004015c0
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
test eax, eax
jns 0x40b414
fadd dword [0x5656cc]
fsubr qword [esp + 0x14]
fmul qword [0x565588]
call fcn.00516190
cmp dword [esp + 0x50], 0
jne 0x40b42d
add ebx, 5
xor edx, edx
test ebx, ebx
sets dl
xor ecx, ecx
dec edx
and ebx, edx
test eax, eax
sets cl
dec ecx
and ecx, eax
mov dword [esp + 0x28], ecx
mov ecx, esi
call fcn.004015c0
push eax
mov ecx, esi
call fcn.00401590
add ebx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x28]
lea ecx, [esp + 0x3c]
push eax
push ebx
push esi
call fcn.004015f0
jmp case.default.0x40b2b2
fstp st(0)
mov eax, dword [esp + 0x54]
mov edx, dword [edi + 0xa0]
mov ecx, dword [edx + eax + 8]
mov eax, dword [esp + 0x50]
add dword [esp + 0x30], ecx
inc eax
mov dword [esp + 0x50], eax
cmp eax, dword [esp + 0x68]
jl 0x40aa97
cmp dword [ebp + 0xc], 0
je 0x40b69f
xor ebx, ebx
cmp dword [edi + 0xe8], ebx
je 0x40b55f
lea edx, [edi + 0x1bc]
push edx
call dword [sym.imp.USER32.dll_IsRectEmpty]
mov esi, dword [edi + 0xe8]
mov dword [esp + 0x14], ebx
test eax, eax
je 0x40b50b
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14]
push eax
push ecx
call dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
cmp eax, ebx
je 0x40b4df
mov dword [esi + 8], eax
mov eax, dword [edi + 0xe8]
cmp eax, ebx
je 0x40b4ee
mov eax, dword [eax + 4]
jmp 0x40b4f0
xor eax, eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0x24]
push ecx
push edx
push ebx
push eax
mov eax, dword [esp + 0x48]
push eax
jmp 0x40b551
mov edx, dword [esi + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
cmp eax, ebx
je 0x40b521
mov dword [esi + 8], eax
mov eax, dword [esp + 0xb8]
mov ecx, dword [edi + 0xe8]
sub eax, dword [edi + 0x174]
cmp ecx, ebx
je 0x40b53d
mov ecx, dword [ecx + 4]
jmp 0x40b53f
xor ecx, ecx
mov edx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x28]
push eax
push ebx
push ecx
mov ecx, dword [esp + 0x48]
push ecx
call dword [sym.imp.gdiplus.dll_GdipDrawImageRectI]
cmp eax, ebx
je 0x40b55f
mov dword [esp + 0x38], eax
cmp dword [edi + 0xec], ebx
je 0x40b69f
lea edx, [edi + 0x1bc]
push edx
call dword [sym.imp.USER32.dll_IsRectEmpty]
mov esi, dword [edi + 0xec]
test eax, eax
je 0x40b612
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], ebx
mov ebx, dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
push ecx
call ebx
test eax, eax
je 0x40b5a2
mov dword [esi + 8], eax
mov esi, dword [edi + 0xec]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
push ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x24], 0
call ebx
test eax, eax
je 0x40b5ca
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x1c]
mov ecx, dword [edi + 0xec]
add eax, dword [edi + 0x80]
test ecx, ecx
je 0x40b5fb
mov edx, dword [esp + 0x54]
mov ecx, dword [ecx + 4]
push edx
mov edx, dword [esp + 0xbc]
push edx
push eax
push 0
push ecx
jmp 0x40b68c
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0xbc]
push edx
xor ecx, ecx
push eax
push ecx
push ecx
jmp 0x40b68c
mov edx, dword [esi + 4]
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x68], ebx
mov ebx, dword [sym.imp.gdiplus.dll_GdipGetImageHeight]
push edx
call ebx
test eax, eax
je 0x40b62e
mov dword [esi + 8], eax
mov esi, dword [edi + 0xec]
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x4c]
push ecx
push edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], 0
call ebx
test eax, eax
je 0x40b656
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xb8]
mov edx, dword [edi + 0xec]
sub ecx, dword [edi + 0x174]
add eax, dword [edi + 0x80]
test edx, edx
je 0x40b680
mov edx, dword [edx + 4]
jmp 0x40b682
xor edx, edx
mov esi, dword [esp + 0x54]
push esi
push ecx
push eax
push 0
push edx
mov eax, dword [esp + 0x48]
push eax
call dword [sym.imp.gdiplus.dll_GdipDrawImageRectI]
test eax, eax
je 0x40b69f
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x48], eax
cmp eax, dword [esp + 0x6c]
jl 0x40a8d1
lea ebx, [esp + 0x34]
call fcn.0040be30
cmp dword [edi + 0x84], 0
je 0x40b710
mov esi, dword [esp + 0xb4]
mov eax, dword [edi + 0x178]
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0xd4], esi
add esi, eax
sub eax, dword [edi + 0x7c]
add ecx, eax
lea eax, [esp + 0x34]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov eax, edi
call fcn.0040b820
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x40b720
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov edx, dword [edi + 0x178]
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0xb4]
mov edi, dword [edi + 0x7c]
mov ecx, dword [esp + 0xb8]
sub ecx, dword [esp + 0xb0]
push 0xcc0020
push edx
mov edx, dword [esp + 0x80]
push 0
push edx
sub eax, edi
push eax
mov eax, dword [esp + 0x84]
push ecx
mov ecx, dword [eax + 4]
push edi
push 0
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x40b77b
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x78]
push eax
push edx
call fcn.004261ea
mov eax, dword [esp + 0x5c]
push eax
call dword [sym.imp.gdiplus.dll_GdipDeleteStringFormat]
mov ecx, dword [esp + 0xa8]
push ecx
call dword [sym.imp.gdiplus.dll_GdipDeleteFont]
mov edx, dword [esp + 0x34]
push edx
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
mov byte [esp + 0x100], 0
lea ecx, [esp + 0x94]
mov dword [esp + 0x94], vtable.CBitmap.0
call fcn.00402b20
lea ecx, [esp + 0x74]
mov dword [esp + 0x100], 0xffffffff
call fcn.00425f06
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe0]
xor ecx, esp
call fcn.00511b7f
mov esp, ebp
pop ebp
ret 8