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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42457c
mov eax, dword fs:[0]
push eax
sub esp, 0xd0
push ebx
push esi
push edi
mov eax, dword [0x430280]
xor eax, esp
push eax
lea eax, [esp + 0xe0]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x1c], esi
mov eax, dword [ebp + 8]
xor edi, edi
cmp eax, edi
je 0x4040d8
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], vtable.render_ui::CGraphDC.0
mov dword [esp + 0x2c], vtable.render_ui::CGraphDC.1.0
mov dword [esp + 0xe8], edi
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x80]
mov edx, dword [esi + 0x84]
mov dword [esp + 0xcc], eax
mov eax, dword [esi + 0x88]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esi + 0x34]
mov dword [esp + 0xd8], eax
xor eax, eax
mov dword [esp + 0xd4], edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
cmp ecx, edi
je 0x403896
push edi
lea eax, [esp + 0x3c]
call fcn.004104a0
jmp 0x4038ad
mov eax, dword [esi + 0x6c]
cmp eax, edi
je 0x4038ad
mov edx, dword [eax + 0x38]
mov edx, dword [edx + 0x24]
lea ecx, [eax + 0x38]
lea eax, [esp + 0x38]
push eax
call edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push eax
push ecx
lea edx, [esp + 0xd4]
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
mov ebx, dword [esi + 0x94]
add esi, 0x90
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
cmp ebx, edi
jne 0x4038e1
xor eax, eax
jmp 0x4038fe
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, edi
je 0x4038fa
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esi + 4]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edi
cmp ebx, edi
jne 0x403911
xor eax, eax
jmp 0x40392e
mov eax, dword [ebx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, edi
je 0x40392a
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], eax
lea ebx, [esp + 0x6c]
cmp dword [0x433008], edi
je 0x40394e
lea ecx, [esp + 0x28]
push ecx
mov eax, esi
jmp 0x40395c
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x28]
add eax, 0xa8
push edx
call fcn.00411390
xor eax, eax
cmp dword [0x433008], edi
lea ecx, [esp + 0x4c]
sete al
push ecx
mov dword [0x433008], eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
fld dword [0x42aa44]
lea edx, [esp + 0x34]
push edx
sub esp, 0x18
fstp dword [esp + 0x14]
mov dword [esp + 0x50], edi
fld dword [0x42aa40]
fstp dword [esp + 0x10]
fld1
fst dword [esp + 0xc]
fldz
fst dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
call sub.gdiplus.dll_GdipCreateMatrix2
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ecx
mov byte [esp + 0xe8], 1
movzx eax, word [esp + 0x54]
mov edx, eax
shl edx, 4
sub edx, eax
movzx eax, word [esp + 0x56]
add edx, edx
mov dword [esp + 0x18], edx
push edi
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
push ecx
fild dword [esp + 0x20]
fmul qword [0x42aa38]
faddp st(1)
fsub qword [0x42aa30]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
call sub.gdiplus.dll_GdipRotateMatrix
cmp eax, edi
je 0x403a14
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0x1c]
mov ebx, dword [esi + 0xb8]
add esi, 0xb4
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
cmp ebx, edi
jne 0x403a3a
xor eax, eax
jmp 0x403a57
mov edx, dword [ebx + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, edi
je 0x403a53
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esi + 4]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edi
cmp ebx, edi
jne 0x403a70
xor eax, eax
jmp 0x403a8d
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, edi
je 0x403a89
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esi + 4]
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], eax
cmp ebx, edi
jne 0x403aa6
xor esi, esi
jmp 0x403ac3
mov eax, dword [ebx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, edi
je 0x403abf
mov dword [ebx + 8], eax
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0xb8]
add eax, 0xb4
cmp ebx, edi
jne 0x403ada
xor ecx, ecx
jmp 0x403af7
mov edx, dword [ebx + 4]
lea ecx, [esp + 0x24]
push ecx
push edx
mov dword [esp + 0x2c], edi
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, edi
je 0x403af3
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0x24]
mov eax, 0xd5555555
imul esi
mov esi, dword [esp + 0x34]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
mov eax, ecx
fild dword [esp + 0x18]
cdq
sub eax, edx
push edi
sub esp, 8
sar eax, 1
neg eax
fstp dword [esp + 4]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fstp dword [esp]
push esi
call sub.gdiplus.dll_GdipTranslateMatrix
cmp eax, edi
je 0x403b3b
mov dword [esp + 0x68], eax
push 3
lea ecx, [esp + 0x88]
push ecx
push esi
call sub.gdiplus.dll_GdipTransformMatrixPointsI
cmp eax, edi
je 0x403b53
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x28]
push edx
add eax, 0xb4
lea ebx, [esp + 0x88]
call fcn.00411390
fld dword [0x42aa44]
lea eax, [esp + 0x24]
push eax
sub esp, 0x18
fstp dword [esp + 0x14]
mov dword [esp + 0x40], edi
fld dword [0x42aa40]
fstp dword [esp + 0x10]
fld1
fst dword [esp + 0xc]
fldz
fst dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
call sub.gdiplus.dll_GdipCreateMatrix2
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], ecx
mov byte [esp + 0xe8], 2
movzx eax, word [esp + 0x56]
sub eax, 0x1e
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
push edi
fild dword [esp + 0x1c]
push ecx
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
call sub.gdiplus.dll_GdipRotateMatrix
cmp eax, edi
je 0x403be9
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x1c]
mov ebx, dword [esi + 0xc4]
add esi, 0xc0
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edi
cmp ebx, edi
jne 0x403c0f
xor eax, eax
jmp 0x403c2c
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, edi
je 0x403c28
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esi + 4]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edi
cmp ebx, edi
jne 0x403c45
xor eax, eax
jmp 0x403c62
mov eax, dword [ebx + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, edi
je 0x403c5e
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esi + 4]
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], eax
cmp ebx, edi
jne 0x403c7b
xor esi, esi
jmp 0x403c98
mov edx, dword [ebx + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, edi
je 0x403c94
mov dword [ebx + 8], eax
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0xc4]
add eax, 0xc0
cmp ebx, edi
jne 0x403caf
xor ecx, ecx
jmp 0x403ccc
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x20]
push eax
push ecx
mov dword [esp + 0x28], edi
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, edi
je 0x403cc8
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0x20]
mov eax, 0xd5555555
imul esi
mov esi, dword [esp + 0x24]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
mov eax, ecx
fild dword [esp + 0x18]
cdq
sub eax, edx
push edi
sub esp, 8
sar eax, 1
neg eax
fstp dword [esp + 4]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fstp dword [esp]
push esi
call sub.gdiplus.dll_GdipTranslateMatrix
cmp eax, edi
je 0x403d10
mov dword [esp + 0x60], eax
push 3
lea ecx, [esp + 0xa0]
push ecx
push esi
call sub.gdiplus.dll_GdipTransformMatrixPointsI
cmp eax, edi
je 0x403d28
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x28]
push edx
add eax, 0xc0
lea ebx, [esp + 0xa0]
call fcn.00411390
fld dword [0x42aa44]
lea eax, [esp + 0x20]
push eax
sub esp, 0x18
fstp dword [esp + 0x14]
mov dword [esp + 0x3c], edi
fld dword [0x42aa40]
fstp dword [esp + 0x10]
fld1
fst dword [esp + 0xc]
fldz
fst dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
call sub.gdiplus.dll_GdipCreateMatrix2
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ecx
mov byte [esp + 0xe8], 3
movzx eax, word [esp + 0x58]
sub eax, 0x1e
lea edx, [eax + eax*2]
add edx, edx
mov dword [esp + 0x18], edx
push edi
fild dword [esp + 0x1c]
push ecx
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ecx
call sub.gdiplus.dll_GdipRotateMatrix
cmp eax, edi
je 0x403dbe
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + 0xd0]
add ebx, 0xcc
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], edi
cmp esi, edi
jne 0x403de4
xor eax, eax
jmp 0x403e01
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, edi
je 0x403dfd
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
mov esi, dword [ebx + 4]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], edi
cmp esi, edi
jne 0x403e1a
xor eax, eax
jmp 0x403e37
mov eax, dword [esi + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x1c], edi
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, edi
je 0x403e33
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
mov esi, dword [ebx + 4]
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], eax
cmp esi, edi
jne 0x403e52
mov dword [esp + 0x14], edi
jmp 0x403e73
mov edx, dword [esi + 4]
lea ecx, [esp + 0x48]
push ecx
push edx
mov dword [esp + 0x50], edi
call sub.gdiplus.dll_GdipGetImageHeight
cmp eax, edi
je 0x403e6b
mov dword [esi + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], eax
mov esi, dword [ebx + 4]
cmp esi, edi
jne 0x403e7e
xor ecx, ecx
jmp 0x403e9b
mov edx, dword [esi + 4]
lea ecx, [esp + 0x18]
push ecx
push edx
mov dword [esp + 0x20], edi
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, edi
je 0x403e97
mov dword [esi + 8], eax
mov ecx, dword [esp + 0x18]
mov eax, 0x6db6db6d
imul dword [esp + 0x14]
sub edx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x14], eax
mov eax, ecx
fild dword [esp + 0x14]
cdq
sub eax, edx
push edi
sub esp, 8
sar eax, 1
neg eax
fstp dword [esp + 4]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fstp dword [esp]
push esi
call sub.gdiplus.dll_GdipTranslateMatrix
cmp eax, edi
je 0x403ee8
mov dword [esp + 0x3c], eax
push 3
lea ecx, [esp + 0xb8]
push ecx
push esi
call sub.gdiplus.dll_GdipTransformMatrixPointsI
cmp eax, edi
je 0x403f00
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x28]
mov eax, ebx
push edx
lea ebx, [esp + 0xb8]
call fcn.00411390
movzx ecx, word [esp + 0x54]
mov eax, 0x66666667
imul ecx
mov esi, dword [esp + 0x1c]
sar edx, 2
push 0xff
mov eax, edx
shr eax, 0x1f
add eax, edx
push 0x17
push 0xe
lea ecx, [eax*8]
sub ecx, eax
add ecx, ecx
push ecx
push 0x17
push 0xe
push edi
push edi
lea edx, [esp + 0x48]
add esi, 0xd8
push edx
mov eax, esi
call fcn.00411070
movzx eax, word [esp + 0x54]
cdq
mov ecx, 0xa
idiv ecx
push 0xff
push 0x17
push 0xe
lea ecx, [esp + 0x34]
lea eax, [edx*8]
sub eax, edx
add eax, eax
push eax
push 0x17
push 0xe
push edi
push 0x14
push ecx
mov eax, esi
call fcn.00411070
push 0xff
push 0x17
push 0xe
push 0x8c
push 0x17
push 0xe
push edi
push 0x28
lea edx, [esp + 0x48]
push edx
mov eax, esi
call fcn.00411070
movzx ecx, word [esp + 0x56]
mov eax, 0x66666667
imul ecx
sar edx, 2
push 0xff
mov eax, edx
shr eax, 0x1f
add eax, edx
push 0x17
push 0xe
lea ecx, [eax*8]
sub ecx, eax
add ecx, ecx
push ecx
push 0x17
push 0xe
push edi
push 0x3c
lea edx, [esp + 0x48]
push edx
mov eax, esi
call fcn.00411070
movzx eax, word [esp + 0x56]
cdq
mov ecx, 0xa
idiv ecx
push 0xff
push 0x17
push 0xe
lea ecx, [esp + 0x34]
lea eax, [edx*8]
sub eax, edx
add eax, eax
push eax
push 0x17
push 0xe
push edi
push 0x50
push ecx
mov eax, esi
call fcn.00411070
push 0xff
push 0x17
push 0xe
push 0x8c
push 0x17
push 0xe
push edi
push 0x64
lea edx, [esp + 0x48]
push edx
mov eax, esi
call fcn.00411070
movzx ecx, word [esp + 0x58]
mov eax, 0x66666667
imul ecx
sar edx, 2
push 0xff
mov eax, edx
shr eax, 0x1f
add eax, edx
push 0x17
push 0xe
lea ecx, [eax*8]
sub ecx, eax
add ecx, ecx
push ecx
push 0x17
push 0xe
push edi
push 0x78
lea edx, [esp + 0x48]
push edx
mov eax, esi
call fcn.00411070
movzx eax, word [esp + 0x58]
cdq
mov ecx, 0xa
idiv ecx
push 0xff
push 0x17
push 0xe
lea ecx, [esp + 0x34]
lea eax, [edx*8]
sub eax, edx
add eax, eax
push eax
push 0x17
push 0xe
push edi
push 0x8c
push ecx
mov eax, esi
call fcn.00411070
mov edx, dword [esp + 0x20]
push edx
call sub.gdiplus.dll_GdipDeleteMatrix
mov eax, dword [esp + 0x24]
push eax
call sub.gdiplus.dll_GdipDeleteMatrix
mov ecx, dword [esp + 0x34]
push ecx
call sub.gdiplus.dll_GdipDeleteMatrix
mov ecx, dword [esp + 0xe0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4