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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
push ebx
push esi
push edi
lea edi, [ecx + 0x10]
push 0
mov dword [esp + 0x10], ecx
push 0x4cc09c
mov ecx, edi
mov dword [esp + 0x20], 0
call fcn.004023f0
mov ebx, dword [ebp + 8]
cmp dword [ebx], 1
jne 0x403271
mov esi, dword [ebx + 8]
push esi
call fcn.0041d010
test eax, eax
je 0x402dee
push esi
push eax
mov ecx, edi
call fcn.00401790
mov eax, dword [ebx + 8]
cmp eax, 0xfd4
jne 0x402e05
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x18], ecx
jmp 0x402e2b
cmp eax, 0xfd5
jne 0x402e19
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x18]
mov dword [esp + 0x18], eax
jmp 0x402e2b
cmp eax, 0xfd6
jne 0x402e2b
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0x18], edx
push 0x30
lea eax, [esp + 0x74]
push 0
push eax
call fcn.0047d210
add esp, 0xc
push 0x10
push 0x10
lea ecx, [esp + 0x60]
mov dword [esp + 0x78], 0x30
mov dword [esp + 0x7c], 0x40
call fcn.004a64c0
mov edx, dword [ebx + 8]
push 0
lea ecx, [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x14]
push edx
call fcn.0042e4f0
test eax, eax
je 0x403271
lea ecx, [esp + 0x50]
call fcn.0041bcc0
lea ecx, [esp + 0x28]
call fcn.0041bcc0
lea eax, [ebx + 0x1c]
push eax
lea ecx, [esp + 0x64]
call fcn.004a65a0
mov esi, dword [sym.imp.USER32.dll_GetSysColor]
push 4
call esi
lea ecx, [esp + 0x60]
mov dword [esp + 0x1c], eax
call fcn.004a6620
mov edi, dword [esp + 0x5c]
cdq
sub eax, edx
mov ecx, eax
mov eax, edi
cdq
sar ecx, 1
sub eax, edx
sar eax, 1
sub ecx, eax
add ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ecx
add ecx, edi
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x40]
push 0
push edx
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], eax
call fcn.004a6810
mov eax, dword [ebx + 0x18]
push eax
call fcn.0042fbf0
mov edi, eax
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
mov edx, dword [edi]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc]
add eax, 8
push eax
mov ecx, edi
call edx
mov eax, dword [esp + 0xc]
add eax, 0x10
push eax
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.0042e000
mov ecx, dword [eax]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 4]
mov eax, dword [ebx + 0x10]
xor ecx, ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x38], ecx
test al, 2
je 0x402f53
test al, 1
jne 0x402f53
mov dword [esp + 0x38], 0x20
mov dword [esp + 0x20], ecx
test al, 1
je 0x402f61
push 0xd
call esi
jmp 0x402f65
mov eax, dword [esp + 0x1c]
push eax
lea eax, [ebx + 0x1c]
push eax
mov ecx, edi
call fcn.00432790
test byte [ebx + 0x10], 8
je 0x40300a
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x3c]
push eax
mov dword [esp + 0x4c], ecx
push eax
lea ecx, [esp + 0x44]
call fcn.004a67e0
test byte [ebx + 0x10], 1
je 0x402fc9
push 0xe
call esi
push 0xd
mov dword [esp + 0x14], eax
call esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x402fd5
push 0xd
call esi
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
push eax
lea ecx, [esp + 0x40]
call fcn.0041bcc0
push eax
mov ecx, edi
call fcn.00432790
push 0xffffffffffffffff
push 0xffffffffffffffff
lea ecx, [esp + 0x44]
call fcn.004a67e0
mov edx, dword [esp + 0x24]
push edx
lea ecx, [esp + 0x40]
call fcn.0041bcc0
push eax
mov ecx, edi
call fcn.00432790
test byte [ebx + 0x10], 1
je 0x403036
mov eax, dword [edi]
push 0xd
mov dword [esp + 0x14], eax
call esi
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [edx + 0x34]
mov ecx, edi
call eax
mov ecx, dword [edi]
push 0xe
mov dword [esp + 0x14], ecx
call esi
mov edx, dword [esp + 0x10]
jmp 0x403052
mov edx, dword [edi]
mov eax, dword [esp + 0x1c]
mov edx, dword [edx + 0x34]
push eax
mov ecx, edi
call edx
mov eax, dword [edi]
push 7
mov dword [esp + 0x14], eax
call esi
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [edx + 0x38]
mov ecx, edi
call eax
mov ecx, edi
call fcn.0042d960
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
add eax, 0x10
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x28]
call fcn.004a6620
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x54]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
sar ecx, 1
sar eax, 1
sub ecx, eax
add ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
or edx, 2
push edx
mov edx, dword [esp + 0x14]
push 0
push 0
push ecx
mov ecx, dword [eax + 0x44]
add ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
push ecx
push 0
push edx
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_DrawStateW]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4031bc
mov eax, dword [ebx + 0x10]
test al, 2
je 0x4030f6
mov eax, dword [ecx + 4]
lea edx, [esp + 0x20]
push edx
push eax
call sub.gdiplus.dll_GdipCreateHICONFromBitmap
test eax, eax
je 0x4031bc
mov ecx, dword [esp + 0x18]
mov dword [ecx + 8], eax
jmp 0x4031bc
test al, 1
je 0x403102
push 0xd
call esi
mov ebx, eax
jmp 0x403106
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
call fcn.004033e0
mov dword [esp + 0x10], eax
call fcn.004033b0
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x1c]
push edx
push 0
push 0x26200a
push 0
push ecx
push eax
mov dword [esp + 0x54], vtable.Gdiplus::Bitmap.0
mov dword [esp + 0x34], 0
call sub.gdiplus.dll_GdipCreateBitmapFromScan0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x3c]
lea esi, [esp + 0x10]
mov dword [esp + 0x40], edx
call fcn.00403380
movzx eax, bl
mov ecx, ebx
or eax, 0xffffff00
shr ecx, 8
movzx edx, cl
shl eax, 8
or eax, edx
mov edx, dword [esp + 0x10]
shr ebx, 0x10
movzx ecx, bl
shl eax, 8
or eax, ecx
push eax
push edx
call sub.gdiplus.dll_GdipGraphicsClear
test eax, eax
je 0x40318d
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
lea esi, [esp + 0x10]
call fcn.00403350
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
push esi
call sub.gdiplus.dll_GdipCreateHICONFromBitmap
mov ecx, dword [esp + 0x10]
push ecx
call sub.gdiplus.dll_GdipDeleteGraphics
push esi
call sub.gdiplus.dll_GdipDisposeImage
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + 0x10]
test bl, 1
je 0x403214
cmp dword [esp + 0x18], 0
je 0x4031d0
test bl, 2
je 0x403214
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x2c]
call fcn.004a6640
lea ecx, [esp + 0x28]
mov esi, eax
call fcn.0041bcc0
push 0xe
mov ebx, eax
call dword [sym.imp.USER32.dll_GetSysColorBrush]
push eax
call fcn.0042d850
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push eax
mov eax, dword [esp + 0x24]
push 0x80
push eax
mov eax, dword [ebx + 4]
push ecx
mov ecx, dword [ebx]
push edx
push eax
push ecx
jmp 0x403247
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x2c]
call fcn.004a6640
lea ecx, [esp + 0x28]
mov esi, eax
call fcn.0041bcc0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
push 0
push ecx
mov ecx, dword [esi + 4]
push edx
mov edx, dword [esi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
mov ecx, edi
call fcn.0042dcd0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x14], 0
je 0x403263
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.USER32.dll_DestroyIcon]
mov edx, dword [edi]
mov eax, dword [esp + 0x4c]
mov edx, dword [edx + 0x28]
push eax
mov ecx, edi
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4