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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x47f208
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push ebx
push esi
push edi
mov eax, dword [0x495780]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x34], esi
push 0x4e29
push ecx
call fcn.004010f0
add esp, 4
call fcn.004012b0
mov edx, dword [esi + 0x60]
mov edi, eax
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax + 0x14]
mov eax, dword [esi + 0x5c]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [edi + 4]
push ecx
xor ebx, ebx
push edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ebx
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, ebx
je 0x40840a
mov dword [edi + 8], eax
mov ecx, dword [edi + 4]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push ecx
mov dword [esp + 0x18], ebx
call sub.gdiplus.dll_GdipGetImageWidth
test eax, eax
je 0x408427
mov dword [edi + 8], eax
mov ecx, dword [esp + 0x10]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [eax + 8], ebx
mov ebx, dword [esp + 0x3c]
mov dword [eax + 0xc], ebx
sub esp, 0x10
mov eax, esp
shr ecx, 1
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov edx, dword [ebp + 8]
xor ebx, ebx
push ebx
shr esi, 1
mov ecx, 0x78
push edi
mov dword [eax + 8], esi
push edx
mov dword [eax + 0xc], ecx
call fcn.00409070
mov ecx, dword [0x49731c]
add esp, 0x2c
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x4c], vtable.Gdiplus::SolidBrush.0
mov dword [esp + 0x1c], ebx
call sub.gdiplus.dll_GdipCreateSolidFill
mov edx, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
push 2
push ecx
mov byte [esp + 0x78], 1
call fcn.004010f0
add esp, 4
push eax
call fcn.00401360
mov esi, eax
mov ecx, dword [esi]
lea eax, [esp + 0x3c]
push eax
push ecx
call sub.gdiplus.dll_GdipGetFamily
cmp eax, ebx
je 0x4084d7
mov dword [esp + 0x40], eax
mov dword [esi + 4], eax
fld dword [0x48c080]
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x10]
push edx
push 2
push ebx
push ecx
fstp dword [esp]
push eax
mov dword [esp + 0x24], ebx
call sub.gdiplus.dll_GdipCreateFont
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x34]
mov byte [esp + 0x70], 2
fldz
mov ecx, dword [esi + 0x58]
fst dword [esp + 0x60]
mov eax, dword [esi + 0x10]
fst dword [esp + 0x5c]
fst dword [esp + 0x58]
fstp dword [esp + 0x54]
sub eax, dword [ecx + 0x44]
sub eax, 0x88
cdq
sub eax, edx
mov edx, dword [esi + 0x4c]
sar eax, 1
add eax, 0x44
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x14]
fild dword [esp + 0x34]
add eax, 0x1e
cmp dword [ecx + 0x3c], 0x30
mov dword [esp + 0x34], eax
fstp dword [esp + 0x2c]
fild dword [esp + 0x34]
fstp dword [esp + 0x30]
jne 0x4085fc
push 0x4e2b
push ecx
call fcn.004010f0
add esp, 4
call fcn.004012b0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push 5
push edx
mov edi, eax
call sub.gdiplus.dll_GdipSetTextRenderingHint
cmp eax, ebx
je 0x40858b
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], eax
cmp edi, ebx
je 0x408594
mov eax, dword [edi + 4]
jmp 0x408596
xor eax, eax
fld dword [esp + 0x30]
mov edx, dword [ebp + 8]
sub esp, 8
fstp dword [esp + 4]
fld dword [0x48c090]
fstp dword [esp]
push eax
mov eax, dword [edx]
push eax
call sub.gdiplus.dll_GdipDrawImage
cmp eax, ebx
je 0x4085c0
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], eax
mov eax, dword [edi + 4]
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0x20], ebx
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, ebx
je 0x4085d9
mov dword [edi + 8], eax
mov ecx, dword [esp + 0x18]
add ecx, 0x14
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
test ecx, ecx
jge 0x4085f2
fadd dword [0x48c04c]
fadd qword [0x48c088]
fstp dword [esp + 0x2c]
mov eax, dword [esi + 0x58]
mov edx, dword [eax + 0x34]
mov ebx, dword [eax + 0x20]
mov esi, dword [edx]
mov ecx, edx
mov edx, ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
test ebx, ebx
je 0x40861d
cmp ebx, dword [esp + 0x34]
je 0x408622
call fcn.0045e23c
cmp esi, dword [esp + 0x38]
je 0x408777
test ebx, ebx
jne 0x408664
call fcn.0045e23c
xor eax, eax
cmp esi, dword [eax + 0x14]
jne 0x408641
call fcn.0045e23c
mov edi, dword [esi + 0x1c]
test ebx, ebx
jne 0x408668
call fcn.0045e23c
xor eax, eax
cmp esi, dword [eax + 0x14]
jne 0x408659
call fcn.0045e23c
cmp dword [esi + 0x20], 8
jb 0x40866c
mov eax, dword [esi + 0xc]
jmp 0x40866f
mov eax, dword [ebx]
jmp 0x408637
mov eax, dword [ebx]
jmp 0x40864f
lea eax, [esi + 0xc]
fld dword [esp + 0x2c]
push 0
push 0
fstp dword [esp + 0x4c]
fld dword [esp + 0x38]
lea ecx, [esp + 0x5c]
push ecx
fstp dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
fldz
push 0
fst dword [esp + 0x5c]
lea edx, [esp + 0x54]
fstp dword [esp + 0x60]
push edx
push ecx
push edi
mov edi, dword [ebp + 8]
mov edx, dword [edi]
push eax
push edx
call sub.gdiplus.dll_GdipMeasureString
test eax, eax
je 0x4086b2
mov dword [edi + 4], eax
mov eax, dword [edi]
push 5
push eax
call sub.gdiplus.dll_GdipSetTextRenderingHint
test eax, eax
je 0x4086c3
mov dword [edi + 4], eax
test ebx, ebx
jne 0x4086fb
call fcn.0045e23c
xor eax, eax
cmp esi, dword [eax + 0x14]
jne 0x4086d8
call fcn.0045e23c
mov edi, dword [esi + 0x1c]
test ebx, ebx
jne 0x4086ff
call fcn.0045e23c
xor eax, eax
cmp esi, dword [eax + 0x14]
jne 0x4086f0
call fcn.0045e23c
cmp dword [esi + 0x20], 8
jb 0x408703
mov eax, dword [esi + 0xc]
jmp 0x408706
mov eax, dword [ebx]
jmp 0x4086ce
mov eax, dword [ebx]
jmp 0x4086e6
lea eax, [esi + 0xc]
mov ecx, dword [esp + 0x14]
fld dword [esp + 0x2c]
push ecx
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
fld dword [esp + 0x34]
push 0
fstp dword [esp + 0x28]
fldz
lea edx, [esp + 0x24]
push edx
fst dword [esp + 0x30]
push ecx
fstp dword [esp + 0x38]
push edi
mov edi, dword [ebp + 8]
mov edx, dword [edi]
push eax
push edx
call sub.gdiplus.dll_GdipDrawString
test eax, eax
je 0x408745
mov dword [edi + 4], eax
fld dword [esp + 0x60]
fadd qword [0x48c078]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
test ebx, ebx
jne 0x408773
call fcn.0045e23c
xor eax, eax
cmp esi, dword [eax + 0x14]
jne 0x40876c
call fcn.0045e23c
mov esi, dword [esi]
jmp 0x408613
mov eax, dword [ebx]
jmp 0x408762
mov eax, dword [esp + 0x10]
push eax
call sub.gdiplus.dll_GdipDeleteFont
mov ecx, dword [esp + 0x3c]
push ecx
call sub.gdiplus.dll_GdipDeleteFontFamily
mov edx, dword [esp + 0x14]
push edx
call sub.gdiplus.dll_GdipDeleteBrush
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4