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

Disassembly:
sub esp, 0x54
push ebx
push ebp
push esi
mov esi, dword [esp + 0x68]
push edi
xor edi, edi
cmp esi, edi
je 0x4329ac
cmp dword [esi], edi
je 0x4329ac
mov eax, dword [esp + 0x68]
cmp eax, edi
je 0x4329ac
mov ebx, dword [eax + 4]
cmp ebx, edi
mov dword [esp + 0x10], ebx
je 0x4329ac
mov ebp, dword [esp + 0x70]
mov dword [ebp + 4], edi
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov dword [ebp], ebx
mov eax, dword [esi]
mov dword [ebp + 4], eax
mov ecx, dword [esi + 4]
mov dword [ebp + 8], ecx
mov edx, dword [esi + 8]
mov dword [ebp + 0xc], edx
mov eax, dword [esi]
cmp eax, 3
je 0x432997
cmp eax, 4
je 0x432997
cmp eax, 5
jne 0x4326c8
mov esi, dword [esi + 0x10]
push edi
push esi
lea eax, [esi + 0x428]
push eax
push 4
push esi
push ebx
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
cmp eax, edi
mov dword [ebp + 0x14], eax
je 0x432983
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ebx
push eax
pop esi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ecx, dword [ebp + 0x14]
push ecx
push esi
mov dword [esp + 0x74], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 8]
push edx
push eax
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x74], eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push 0xcc0020
push edi
push edi
push esi
push ecx
push edx
push edi
push edi
push ebx
mov dword [esp + 0x90], eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esp + 0x68]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
mov esi, dword [sym.imp.GDI32.dll_DeleteDC]
call esi
mov ecx, dword [esp + 0x6c]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
call esi
mov edx, dword [ebp + 0x14]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x70]
mov dword [ebp + 0x14], eax
mov ecx, dword [ebp + 0x14]
xor eax, eax
cmp ecx, edi
pop edi
pop esi
pop ebp
pop ebx
setne al
add esp, 0x54
ret 0x10
cmp eax, 7
jne 0x4326fa
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push ecx
push 1
push 1
push edx
push eax
call dword [sym.imp.GDI32.dll_CreateBitmap]
mov dword [ebp + 0x14], eax
mov ecx, dword [ebp + 0x14]
sub eax, eax
cmp ecx, edi
pop edi
pop esi
pop ebp
pop ebx
setne al
add esp, 0x54
ret 0x10
cmp eax, 6
jne 0x43272c
mov esi, dword [esi + 0x10]
push edi
push esi
lea ecx, [esi + 0x428]
push ecx
push 4
push esi
push ebx
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
mov dword [ebp + 0x14], eax
mov ecx, dword [ebp + 0x14]
xor eax, eax
cmp ecx, edi
pop edi
pop esi
pop ebp
pop ebx
setne al
add esp, 0x54
ret 0x10
cmp eax, 8
jne 0x432901
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
neg eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x74]
mov ecx, eax
mov dword [esp + 0x40], edx
shr ecx, 0x10
and ecx, 0xff
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ecx
mov edx, eax
fild qword [esp + 0x14]
shr edx, 8
and edx, 0xff
mov dword [esp + 0x18], edi
fstp dword [esp + 0x1c]
mov dword [esp + 0x14], edx
and eax, 0xff
fild qword [esp + 0x14]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], 0x28
fstp dword [esp + 0x20]
fild qword [esp + 0x14]
mov word [esp + 0x48], 1
mov word [esp + 0x4a], 0x20
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
fstp dword [esp + 0x24]
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
call fcn.00410780
mov edi, dword [esi + 8]
lea ecx, [esp + 0x28]
imul edi, dword [esi + 4]
shl edi, 2
push edi
call fcn.004107a0
mov esi, dword [esi + 0x10]
push edi
pop ecx
mov ebx, eax
push ecx
pop eax
push ebx
pop edi
mov dword [esp + 0x70], 0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 8]
or eax, eax
jbe 0x4328af
mov eax, dword [ecx + 4]
mov dword [esp + 0x68], 0
or eax, eax
jbe 0x43289b
mov al, byte [ebx + 3]
cmp al, 0xff
jae 0x432888
and eax, 0xff
lea esi, [esp + 0x1c]
mov dword [esp + 0x74], eax
nop
push 3
nop
pop edi
fild dword [esp + 0x74]
fmul dword [0x4cdbd8]
fld dword [0x4cdbd4]
fsub st(1)
xor ecx, ecx
mov cl, byte [ebx]
mov dword [esp + 0x74], ecx
fild dword [esp + 0x74]
fmul st(2)
fld st(1)
fmul dword [esi]
faddp st(1)
call fcn.004a3fa8
cmp eax, 0xff
jl 0x43286c
mov byte [ebx], 0xff
jmp 0x432876
test eax, eax
setle dl
dec edx
and edx, eax
mov byte [ebx], dl
add esi, 4
inc ebx
dec edi
jne 0x432847
mov ecx, dword [esp + 0x6c]
inc ebx
fstp st(0)
fstp st(0)
jmp 0x43288b
add ebx, 4
mov eax, dword [esp + 0x68]
mov edx, dword [ecx + 4]
inc eax
cmp eax, edx
mov dword [esp + 0x68], eax
jb 0x43281c
mov eax, dword [esp + 0x70]
mov edx, dword [ecx + 8]
inc eax
cmp eax, edx
mov dword [esp + 0x70], eax
jb 0x43280d
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
neg eax
sbb eax, eax
lea ecx, [esp + 0x3c]
and eax, edi
push 0
push ecx
push eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x48]
push 4
push edx
push eax
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
lea ecx, [esp + 0x28]
mov dword [ebp + 0x14], eax
mov dword [esp + 0x28], 0x4cdbd0
call fcn.00410980
mov ecx, dword [ebp + 0x14]
sub edi, edi
xor eax, eax
cmp ecx, edi
pop edi
pop esi
pop ebp
pop ebx
setne al
add esp, 0x54
ret 0x10
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
mov eax, dword [esi + 0x10]
push edi
push ecx
push edx
push eax
call fcn.00432350
add esp, 0x10
cmp eax, edi
mov dword [esp + 0x6c], eax
je 0x4329ac
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x3c]
push edi
mov dword [esp + 0x48], edx
push ecx
push eax
lea edx, [esp + 0x48]
push 4
push edx
push ebx
mov dword [esp + 0x54], 0x28
mov word [esp + 0x60], 1
mov word [esp + 0x62], 0x18
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x6c]
push eax
call fcn.004b5411
add esp, 4
mov ecx, dword [ebp + 0x14]
sub eax, eax
cmp ecx, edi
pop edi
pop esi
pop ebp
setne al
pop ebx
add esp, 0x54
ret 0x10
mov ecx, dword [esi + 0xc]
pop edi
mov dword [ebp + 0x10], ecx
pop esi
pop ebp
pushfd
xor eax, eax
inc eax
popfd
pop ebx
add esp, 0x54
ret 0x10
pop edi
pop esi
pop ebp
sub eax, eax
pop ebx
add esp, 0x54
ret 0x10