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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x486a8b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf8
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x68]
call fcn.0047a2c0
mov edi, dword [ebp + 8]
test edi, edi
mov dword [esp + 0x10c], 0
jne 0x43b985
xor eax, eax
jmp 0x43b988
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x6c]
call fcn.0047a7a8
test eax, eax
jne 0x43b9ca
lea ecx, [esp + 0x68]
mov dword [esp + 0x10c], 0xffffffff
call fcn.0047a826
xor al, al
mov ecx, dword [esp + 0x104]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
fld qword [esi + 0x20]
fstp qword [esp + 0x78]
fld qword [esi + 0x48]
fstp qword [esp + 0xd0]
fld qword [esi + 0x50]
fstp qword [esp + 0xf0]
fld qword [esi + 0x28]
fst qword [esp + 0x58]
fld qword [esi + 0x30]
fld qword [esi + 0x38]
fstp qword [esp + 0xb0]
fld qword [esi + 0x40]
fstp qword [esp + 0x50]
fld qword [esi + 0x58]
fstp qword [esp + 0xf8]
fld qword [esi + 0x60]
fstp qword [esp + 0xc8]
fsubr qword [0x490f78]
fmul st(1)
fld qword [0x48d8c8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x43ba33
fld qword [0x48d8c8]
jmp 0x43ba35
fld st(0)
fld st(2)
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 5
jp 0x43ba4a
fstp st(0)
fst qword [esp + 0x30]
jmp 0x43ba65
fld qword [0x48d8c8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x43ba61
fstp st(0)
fld qword [0x48d8c8]
fstp qword [esp + 0x30]
fld qword [esp + 0x78]
sub esp, 8
fmul qword [0x490f90]
fadd st(1)
fstp qword [esp]
fstp st(0)
call fcn.00462380
add esp, 8
call fcn.00461dd4
mov dword [esp + 0x14], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x43ba9f
lea ecx, [esi + 0xc]
call fcn.0047aafc
mov eax, dword [esp + 0x14]
lea ecx, [eax + eax + 1]
lea eax, [eax + eax*4]
lea edx, [eax + eax + 5]
mov eax, dword [edi + 4]
push edx
push ecx
push eax
lea ebx, [esi + 0xc]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
mov ecx, ebx
call fcn.0047aaa5
test ebx, ebx
je 0x43bae2
mov ebx, dword [ebx + 4]
test ebx, ebx
je 0x43bae2
mov ecx, dword [esp + 0x6c]
push ebx
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x3c], eax
jmp 0x43baea
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x14]
mov ecx, eax
neg ecx
cmp ecx, eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x24], ecx
jg 0x43c054
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
mov dword [esp + 0x28], eax
jg 0x43c03f
fild dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov edx, ecx
add eax, edx
fld st(0)
mov dword [esp + 0x60], eax
fmul st(1)
fstp qword [esp + 0xe0]
fld qword [esp + 0x30]
fadd qword [esp + 0x58]
fstp qword [esp + 0xa0]
fld qword [esp + 0x58]
fsub qword [esp + 0x30]
fstp qword [esp + 0x88]
fsub qword [esp + 0xd0]
fld st(0)
fmul st(1)
fstp qword [esp + 0xc0]
fstp st(0)
fld qword [0x490f78]
fdiv qword [esp + 0x30]
fstp qword [esp + 0x90]
fld qword [0x490f78]
fdiv qword [esp + 0x78]
fstp qword [esp + 0x80]
fld qword [0x490f78]
fdiv qword [esp + 0xf8]
fstp qword [esp + 0xa8]
lea esp, [esp]
fild dword [esp + 0x28]
fst qword [esp + 0x48]
fld st(0)
fmulp st(1)
fadd qword [esp + 0xe0]
fsqrt
fld qword [esp + 0x58]
fsubr st(1)
fmul qword [esp + 0x80]
fadd st(0), st(0)
fld qword [0x490f90]
fadd st(1)
fld qword [0x490f78]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x43bbf8
fld st(0)
fld qword [0x48d8c8]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x43bbf8
fstp st(0)
fld qword [0x48d8c8]
jmp 0x43bc0f
fld qword [0x490f78]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x43bc0f
fstp st(0)
fld qword [0x490f78]
fstp qword [esp + 0x40]
mov eax, 2
fld st(1)
fadd st(0), st(0)
fsubr qword [esp + 0xa0]
fdiv qword [esp + 0x88]
fld qword [0x490f78]
fst qword [esp + 0x18]
test al, 1
je 0x43bc3a
fmul st(1)
shr eax, 1
test eax, eax
je 0x43bc46
fld st(1)
fmulp st(2)
jmp 0x43bc34
fstp qword [esp + 0x18]
fstp st(0)
fld qword [esp + 0x18]
fmul qword [esp + 0xb0]
fsubr qword [0x490f78]
fstp qword [esp + 0x18]
fsubr qword [0x490f90]
fld qword [0x490f78]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x43bc93
fld st(0)
fld qword [0x48d8c8]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x43bc93
fstp st(0)
fld qword [0x48d8c8]
jmp 0x43bcaa
fld qword [0x490f78]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x43bcaa
fstp st(0)
fld qword [0x490f78]
fmul qword [esp + 0x18]
fstp qword [esp + 0x18]
fld qword [esp + 0x30]
fsubr st(1)
fmul qword [esp + 0x80]
fadd st(0), st(0)
fld qword [0x490f90]
fadd st(1)
fld qword [0x490f78]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x43bcf5
fld st(0)
fld qword [0x48d8c8]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x43bcf5
fstp st(0)
fld qword [0x48d8c8]
jmp 0x43bd0c
fld qword [0x490f78]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x43bd0c
fstp st(0)
fld qword [0x490f78]
fmul qword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], 0xffffffff
fstp qword [esp + 0x18]
lea edi, [edx + ecx]
fld qword [esp + 0x48]
mov dword [esp + 0x38], 5
fsub qword [esp + 0xf0]
fld st(0)
fmul st(1)
fadd qword [esp + 0xc0]
fsqrt
fstp qword [esp + 0xb8]
fstp st(0)
fld qword [esp + 0x90]
fmul st(2)
fld st(0)
fmul st(1)
fmul qword [esp + 0x50]
fstp qword [esp + 0x48]
fstp st(0)
fld qword [0x490f90]
fsub st(1)
fstp qword [esp + 0x98]
fstp st(0)
fstp st(0)
lea ebx, [ebx]
mov eax, dword [esp + 0x2c]
cmp eax, 3
ja case.default.0x43bd89
jmp dword [eax*4 + 0x43c098]
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi + 0x80]
mov ebx, dword [esi + 0x94]
jmp 0x43bde0
mov ecx, dword [esi + 0x70]
mov edx, dword [esi + 0x84]
mov ebx, dword [esi + 0x98]
jmp 0x43bde0
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x88]
mov ebx, dword [esi + 0x9c]
jmp 0x43bde0
mov ecx, dword [esi + 0x78]
mov edx, dword [esi + 0x8c]
mov ebx, dword [esi + 0xa0]
jmp 0x43bde0
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 0x7c]
mov ebx, dword [esi + 0x90]
fld qword [esp + 0x50]
fcomp qword [0x48d8c8]
fnstsw ax
test ah, 0x41
jne 0x43bdf9
fld qword [0x490f78]
jmp 0x43be03
fld qword [esp + 0x50]
fadd qword [0x490f78]
fsub qword [esp + 0x48]
fld qword [esp + 0x98]
fld qword [0x490f78]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x43be3a
fld st(0)
fld qword [0x48d8c8]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x43be3a
fstp st(0)
fld qword [0x48d8c8]
jmp 0x43be51
fld qword [0x490f78]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x43be51
fstp st(0)
fld qword [0x490f78]
fmulp st(1)
fld qword [esp + 0xa8]
fmul qword [esp + 0x50]
fmul qword [esp + 0xb8]
fsubr qword [0x490f78]
fld qword [0x490f78]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x43be97
fld st(0)
fld qword [0x490fb8]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x43be97
fstp st(0)
fld qword [0x490fb8]
jmp 0x43beae
fld qword [0x490f78]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x43beae
fstp st(0)
fld qword [0x490f78]
fmul qword [esp + 0xc8]
movzx eax, bl
mov dword [esp + 0x10], eax
movzx eax, dl
fadd qword [0x490f78]
fmulp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, cl
fmul st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, bh
shr ebx, 0x10
fmul qword [esp + 0x18]
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, dh
shr edx, 0x10
fmul qword [esp + 0x40]
movzx edx, dl
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, ch
fmul st(2)
shr ecx, 0x10
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, bl
fmul qword [esp + 0x18]
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, cl
fmul qword [esp + 0x40]
faddp st(1)
fstp qword [esp + 0xd8]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul st(2)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fmul qword [esp + 0x18]
faddp st(1)
fild dword [esp + 0x10]
fmul qword [esp + 0x40]
faddp st(1)
fstp qword [esp + 0xe8]
call fcn.00461dd4
fstp st(0)
cmp eax, 0xff
jg 0x43bf84
test eax, eax
jge 0x43bf7d
mov dword [esp + 0x10], 0
jmp 0x43bf92
cmp eax, 0xff
jle 0x43bf8e
mov dword [esp + 0x10], 0xff
jmp 0x43bf92
mov dword [esp + 0x10], eax
fld qword [esp + 0xd8]
call fcn.00461dd4
cmp eax, 0xff
jg 0x43bfb4
test eax, eax
jge 0x43bfad
xor ebx, ebx
jmp 0x43bfbd
cmp eax, 0xff
jle 0x43bfbb
mov ebx, 0xff
jmp 0x43bfbd
mov ebx, eax
fld qword [esp + 0xe8]
call fcn.00461dd4
cmp eax, 0xff
jg 0x43bfdf
test eax, eax
jge 0x43bfd8
xor eax, eax
jmp 0x43bfe4
cmp eax, 0xff
jle 0x43bfe4
mov eax, 0xff
movzx edx, byte [esp + 0x10]
xor ecx, ecx
mov ch, al
mov cl, bl
shl ecx, 8
or ecx, edx
mov eax, ecx
mov ecx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x64]
push edi
push eax
push ecx
call dword [sym.imp.GDI32.dll_SetPixel]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
lea eax, [eax + eax + 1]
add edi, eax
mov eax, dword [esp + 0x38]
inc edx
dec eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x38], eax
jne 0x43bd80
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jle 0x43bba0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jle 0x43bb02
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x43c068
mov edx, dword [esp + 0x6c]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x68]
mov dword [esp + 0x10c], 0xffffffff
call fcn.0047a826
mov ecx, dword [esp + 0x104]
pop edi
pop esi
mov al, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4