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

Disassembly:
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
sub esp, 0x98
push ebx
push ebp
mov ebp, dword [esp + 0xa8]
push esi
push edi
mov edi, dword [esp + 0xac]
cmp dword [edi + 4], 0
mov ebx, edx
je 0x431ebb
test ebp, ebp
je 0x431ebb
test ebx, ebx
je 0x431ebb
test eax, eax
je 0x431ebb
test ecx, ecx
je 0x431ebb
cmp byte [edi + 0x182], 0
je 0x431ebb
test eax, eax
jge 0x431e47
mov eax, dword [edi + 0xc]
mov dword [esp + 0xbc], eax
test ecx, ecx
jge 0x431e55
mov ecx, dword [edi + 0x10]
mov dword [esp + 0xc0], ecx
cmp dword [edi + 0x14c], 0
push ebp
setge byte [esp + 0x32]
cmp dword [edi + 0x1bc], 0
setne byte [esp + 0x33]
call dword [sym.imp.GDI32.dll_SaveDC]
mov esi, eax
xor eax, eax
test esi, esi
mov dword [esp + 0x90], esi
je 0x431ebd
lea edx, [esp + 0x64]
push edx
push 0x18
push ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
jne 0x431eca
push esi
push ebp
call dword [sym.imp.GDI32.dll_RestoreDC]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret 0x1c
mov eax, dword [esp + 0x70]
mov ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x431edd
dec ecx
or ecx, 0xfffffffc
inc ecx
je 0x431ef8
nop
add eax, 1
mov edx, eax
and edx, reloc.WS2_32.dll_closesocket
jns 0x431ef2
dec edx
or edx, 0xfffffffc
inc edx
jne 0x431ee0
mov dword [esp + 0x70], eax
mov esi, dword [esp + 0xb8]
mov ebx, dword [esp + 0x6c]
xor eax, eax
test esi, esi
setl al
sub eax, 1
and eax, esi
cmp ebx, eax
jge 0x431f1c
mov dword [esp + 0x84], ebx
jmp 0x431f2f
xor eax, eax
test esi, esi
setl al
sub eax, 1
and eax, esi
mov dword [esp + 0x84], eax
mov ebp, dword [esp + 0xb4]
mov eax, dword [esp + 0x68]
xor ecx, ecx
test ebp, ebp
setl cl
sub ecx, 1
and ecx, ebp
cmp eax, ecx
jge 0x431f53
mov dword [esp + 0x80], eax
jmp 0x431f66
xor ecx, ecx
test ebp, ebp
setl cl
sub ecx, 1
and ecx, ebp
mov dword [esp + 0x80], ecx
mov edx, dword [esp + 0xbc]
lea ecx, [edx + ebp]
cmp eax, ecx
mov edx, eax
jl 0x431f78
mov edx, ecx
test edx, edx
jge 0x431f80
xor eax, eax
jmp 0x431f86
cmp eax, ecx
jl 0x431f86
mov eax, ecx
mov ecx, dword [esp + 0xc0]
add esi, ecx
cmp ebx, esi
mov ecx, ebx
jl 0x431f97
mov ecx, esi
test ecx, ecx
jge 0x431f9f
xor esi, esi
jmp 0x431fa5
cmp ebx, esi
jge 0x431fa5
mov esi, ebx
sub eax, dword [esp + 0x80]
mov ebp, esi
sub ebp, dword [esp + 0x84]
test eax, eax
mov dword [esp + 0x50], eax
jle 0x431ebb
test ebp, ebp
jle 0x431ebb
cmp dword [esp + 0xbc], 0
jle 0x431ebb
cmp dword [esp + 0xc0], 0
jle 0x431ebb
cmp byte [esp + 0x2e], 0
jne 0x432287
cmp byte [esp + 0x2f], 0
jne 0x432287
cmp byte [edi + 0x181], 0
jne 0x432287
cmp dword [esp + 0x78], 0
je 0x432b00
fild dword [edi + 0xc]
mov ebx, dword [edi + 0x10]
mov dword [esp + 0x38], ebx
mov edx, esi
fidiv dword [esp + 0xbc]
sub edx, dword [esp + 0xb8]
fstp dword [esp + 0x24]
fild dword [esp + 0x38]
mov dword [esp + 0x38], edx
fidiv dword [esp + 0xc0]
fstp dword [esp + 0x44]
fild dword [esp + 0x38]
fld dword [esp + 0x44]
fld st(0)
fmulp st(2)
fxch st(1)
call fcn.0049dc50
sub ebx, eax
test ebp, ebp
mov dword [esp + 0x38], ebx
fild dword [esp + 0x38]
fstp dword [esp + 0x30]
jle 0x432afe
mov ecx, dword [esp + 0xb4]
lea eax, [ecx*4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x80]
sub eax, ecx
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fld dword [esp + 0x24]
neg esi
fld st(0)
mov dword [esp + 0x1c], esi
fmulp st(2)
mov dword [esp + 0x3c], ebp
fxch st(1)
fstp dword [esp + 0x38]
fld1
fld qword [0x4c1410]
fld dword [esp + 0x30]
fld st(0)
call fcn.0049dc50
fld dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
fstp dword [esp + 0x28]
mov ebx, dword [edi + 0x30]
xor ecx, ecx
test eax, eax
setl cl
sub ecx, 1
and ecx, eax
mov eax, dword [esp + 0x6c]
lea ebp, [edx + eax]
imul ebp, dword [esp + 0x70]
add ebp, dword [esp + 0x5c]
mov esi, ecx
add ebp, dword [esp + 0x78]
imul ebx, esi
add ebx, dword [edi + 0x34]
cmp dword [esp + 0x50], 0
jle 0x432269
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x54], ecx
fld dword [esp + 0x28]
fld st(0)
call fcn.0049dc50
xor ecx, ecx
test eax, eax
setl cl
sub ecx, 1
and ecx, eax
cmp byte [esp + 0xc4], 0
je 0x4321dc
fxch st(4)
fcom st(3)
fnstsw ax
test ah, 0x41
jne 0x432180
fxch st(3)
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x432188
push 2
fxch st(4)
sub esp, 0x10
fstp dword [esp + 0xc]
lea edx, [esp + 0x5c]
fxch st(1)
fstp dword [esp + 8]
fsub st(2), st(0)
fxch st(2)
fstp dword [esp + 0x54]
fld dword [esp + 0x54]
fstp dword [esp + 4]
fsubrp st(1)
fstp dword [esp + 0x54]
fld dword [esp + 0x54]
fstp dword [esp]
push edx
call fcn.00457510
mov eax, dword [eax]
mov dword [esp + 0x14], eax
jmp 0x4321c4
fstp st(0)
fstp st(4)
fstp st(1)
jmp 0x43218e
fstp st(2)
fstp st(3)
fxch st(2)
fsub st(2), st(0)
push 2
fxch st(2)
sub esp, 8
lea ecx, [esp + 0x88]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fstp dword [esp + 4]
fsubrp st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fstp dword [esp]
push ecx
push edi
call fcn.004553c0
mov edx, dword [eax]
mov dword [esp + 0x14], edx
fld dword [esp + 0x30]
fld dword [esp + 0x28]
fld dword [esp + 0x44]
fld dword [esp + 0x24]
fld qword [0x4c1410]
jmp 0x432223
cmp dword [edi + 0x28], 0
fstp st(3)
je 0x4321ff
mov eax, edi
call fcn.004533e0
mov ecx, edi
push eax
lea eax, [esp + 0x38]
call fcn.00453380
mov eax, dword [eax]
mov dword [esp + 0x14], eax
jmp 0x43221b
lea eax, [ebx + ecx*2]
add eax, ecx
mov cl, byte [eax]
mov dl, byte [eax + 1]
add eax, 1
mov al, byte [eax + 1]
mov byte [esp + 0x14], cl
mov byte [esp + 0x15], dl
mov byte [esp + 0x16], al
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(1)
mov cl, byte [esp + 0x14]
fld st(1)
mov dl, byte [esp + 0x15]
faddp st(4)
mov al, byte [esp + 0x16]
fxch st(3)
mov byte [ebp], cl
add ebp, 1
fstp dword [esp + 0x28]
fld1
mov byte [ebp], dl
add ebp, 1
fxch st(2)
mov byte [ebp], al
fxch st(4)
add ebp, 1
fxch st(1)
mov byte [ebp], 0xff
fxch st(3)
add ebp, 1
fxch st(1)
sub dword [esp + 0x54], 1
jne 0x432105
mov eax, 1
fadd st(4)
add dword [esp + 0x1c], eax
sub dword [esp + 0x3c], eax
fstp dword [esp + 0x30]
jne 0x4320b0
jmp 0x432af8
lea eax, [esp + 0x38]
mov ecx, edi
mov byte [esp + 0x18], 0
mov byte [esp + 0x19], 0
mov byte [esp + 0x1a], 0
mov byte [esp + 0x1b], 0
call fcn.00451ce0
cmp dword [esp + 0x78], 0
mov ecx, dword [edi + 0x14c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], 0
je 0x432b00
mov eax, dword [edi + 0xc]
cmp dword [esp + 0xbc], eax
mov dword [esp + 0x34], eax
jne 0x4325d0
mov eax, dword [edi + 0x10]
cmp dword [esp + 0xc0], eax
jne 0x4325d0
sub eax, esi
add eax, dword [esp + 0xb8]
test ebp, ebp
mov edx, eax
mov dword [esp + 0x3c], edx
jle 0x432b00
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x80]
sub eax, ecx
mov dword [esp + 0x34], eax
lea eax, [ecx*4]
neg esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], ebp
jmp 0x432334
mov ebx, dword [esp + 0x6c]
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x34]
imul eax, edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x4c]
lea ebp, [eax + ebx]
imul ebp, dword [esp + 0x70]
mov eax, dword [edi + 0x30]
add ebp, dword [esp + 0x5c]
imul eax, edx
add ebp, dword [esp + 0x78]
mov dword [esp + 0x28], ecx
lea ecx, [ecx + ecx*2]
add eax, ecx
add eax, dword [edi + 0x34]
cmp dword [esp + 0x50], 0
mov dword [esp + 0x58], eax
jle 0x4325b2
mov eax, dword [esp + 0x50]
mov dword [esp + 0x60], eax
nop
cmp byte [esp + 0x2f], 0
je 0x43239c
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x28]
add ecx, eax
mov eax, dword [edi + 0x1bc]
mov al, byte [ecx + eax]
jmp 0x43239e
or al, 0xff
movzx ebx, byte [edi + 0x180]
add ebx, 1
movzx ecx, al
imul ebx, ecx
sar ebx, 8
cmp dword [edi + 0x28], 0
je 0x4323fb
mov ecx, dword [esp + 0x28]
mov esi, edx
mov eax, edi
call fcn.004533e0
movzx eax, al
mov dword [esp + 0x44], eax
push eax
lea eax, [esp + 0x4c]
mov ecx, edi
call fcn.00453380
cmp byte [edi + 0x181], 0
mov eax, dword [eax]
mov dword [esp + 0x18], eax
je 0x432425
mov edx, eax
shr edx, 0x18
movzx ecx, bl
add edx, 1
imul edx, ecx
sar edx, 8
mov bl, dl
jmp 0x432425
mov eax, dword [esp + 0x58]
movzx edx, byte [eax]
mov cl, byte [eax + 1]
add eax, 1
add eax, 1
mov byte [esp + 0x18], dl
movzx edx, byte [eax]
add eax, 1
mov byte [esp + 0x19], cl
mov byte [esp + 0x1a], dl
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x18]
cmp dword [edi + 0x28], 0
je 0x432435
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x44], eax
jmp 0x432439
cmp eax, dword [esp + 0x38]
jne 0x432446
cmp byte [esp + 0x2e], 0
jne 0x432598
test bl, bl
je 0x432598
cmp bl, 0xff
jne 0x43247c
mov cl, byte [esp + 0x18]
mov dl, byte [esp + 0x19]
mov al, byte [esp + 0x1a]
mov byte [ebp], cl
add ebp, 1
mov byte [ebp], dl
add ebp, 1
mov byte [ebp], al
add ebp, 1
mov byte [ebp], bl
add ebp, 1
jmp 0x43259b
movzx edx, byte [ebp + 1]
movzx eax, byte [ebp]
xor ecx, ecx
mov ch, byte [ebp + 3]
mov cl, byte [ebp + 2]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dh, bl
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x1a]
mov dword [esp + 0x14], ecx
or edx, eax
movzx eax, byte [esp + 0x19]
shl edx, 8
or edx, eax
movzx eax, byte [esp + 0x18]
shl edx, 8
or edx, eax
mov dword [esp + 0x24], edx
mov al, byte [esp + 0x27]
test al, al
je 0x432595
cmp al, 0xff
jne 0x4324d4
mov ecx, edx
jmp 0x432595
mov bl, byte [esp + 0x17]
movzx eax, al
movzx esi, bl
mov ecx, esi
imul ecx, eax
mov dword [esp + 0x30], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub bl, al
add bl, byte [esp + 0x27]
mov byte [esp + 0x13], bl
je 0x43258d
movzx edx, byte [esp + 0x14]
movzx eax, bl
shl eax, 8
mov dword [esp + 0x1c], eax
movzx eax, byte [esp + 0x24]
imul eax, dword [esp + 0x30]
mov ebx, edx
imul edx, ecx
imul ebx, esi
add eax, ebx
shl eax, 8
sub eax, edx
cdq
idiv dword [esp + 0x1c]
movzx edx, byte [esp + 0x15]
mov ebx, edx
imul edx, ecx
imul ebx, esi
mov byte [esp + 0x14], al
movzx eax, byte [esp + 0x25]
imul eax, dword [esp + 0x30]
add eax, ebx
shl eax, 8
sub eax, edx
cdq
idiv dword [esp + 0x1c]
movzx edx, byte [esp + 0x16]
mov ebx, edx
imul edx, ecx
imul ebx, esi
mov byte [esp + 0x15], al
movzx eax, byte [esp + 0x26]
imul eax, dword [esp + 0x30]
add eax, ebx
shl eax, 8
sub eax, edx
cdq
idiv dword [esp + 0x1c]
mov bl, byte [esp + 0x13]
mov byte [esp + 0x16], al
mov byte [esp + 0x17], bl
mov ecx, dword [esp + 0x14]
mov dword [ebp], ecx
add ebp, 4
mov edx, dword [esp + 0x3c]
mov eax, 1
add dword [esp + 0x28], eax
sub dword [esp + 0x60], eax
jne 0x432380
mov eax, 1
add dword [esp + 0x4c], eax
add edx, eax
sub dword [esp + 0x20], eax
mov dword [esp + 0x3c], edx
jne 0x432330
jmp 0x432b00
fild dword [esp + 0x34]
mov ecx, esi
sub ecx, dword [esp + 0xb8]
test ebp, ebp
fidiv dword [esp + 0xbc]
fstp dword [esp + 0x28]
fild dword [edi + 0x10]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
mov dword [esp + 0x34], ecx
fld st(0)
fidiv dword [esp + 0xc0]
fstp dword [esp + 0x30]
fild dword [esp + 0x34]
fld dword [esp + 0x30]
fld st(0)
fmulp st(2)
fxch st(2)
fsubrp st(1)
fstp dword [esp + 0x24]
jle 0x432afe
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x80]
sub eax, ecx
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fld dword [esp + 0x28]
lea edx, [ecx*4]
fld st(0)
neg esi
fmulp st(2)
mov dword [esp + 0x5c], edx
fxch st(1)
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], ebp
fstp dword [esp + 0x34]
fld1
fld qword [0x4c1410]
fldz
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x43267c
xor esi, esi
mov dword [esp + 0x3c], esi
jmp 0x432689
fld st(0)
call fcn.0049dc50
mov dword [esp + 0x3c], eax
mov esi, eax
mov eax, dword [edi + 0xc]
fld dword [esp + 0x34]
mov ecx, dword [esp + 0x6c]
imul eax, esi
fstp dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x4c]
lea ebp, [eax + ecx]
imul ebp, dword [esp + 0x70]
mov eax, dword [edi + 0x30]
add ebp, dword [esp + 0x5c]
imul eax, esi
add eax, dword [edi + 0x34]
add ebp, dword [esp + 0x78]
cmp dword [esp + 0x50], 0
mov dword [esp + 0x7c], eax
jle 0x432adf
mov edx, dword [esp + 0x50]
mov dword [esp + 0x60], edx
fldz
fld dword [esp + 0x1c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x4326e8
xor ebx, ebx
jmp 0x4326f1
fld st(0)
call fcn.0049dc50
mov ebx, eax
cmp byte [esp + 0x2f], 0
je 0x43270a
mov eax, dword [esp + 0x54]
mov edx, dword [edi + 0x1bc]
lea ecx, [ebx + eax]
mov al, byte [ecx + edx]
jmp 0x43270c
or al, 0xff
movzx ecx, byte [edi + 0x180]
add ecx, 1
movzx eax, al
imul ecx, eax
sar ecx, 8
cmp dword [edi + 0x28], 0
mov byte [esp + 0x13], cl
je 0x432845
mov ecx, ebx
mov eax, edi
call fcn.004533e0
cmp byte [esp + 0xc4], 0
movzx ecx, al
mov dword [esp + 0x44], ecx
je 0x4327f4
fxch st(4)
fcom st(3)
fnstsw ax
test ah, 0x41
jne 0x4327b4
fxch st(3)
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x4327bc
push 2
fxch st(4)
sub esp, 0x10
fstp dword [esp + 0xc]
lea edx, [esp + 0xb0]
fxch st(1)
fstp dword [esp + 8]
fsub st(2), st(0)
fxch st(2)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp + 4]
fsubrp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp]
push edx
call fcn.00457510
fld dword [esp + 0x24]
fld dword [esp + 0x1c]
fld dword [esp + 0x30]
fld dword [esp + 0x28]
fld qword [0x4c1410]
jmp 0x432816
fstp st(0)
fstp st(4)
fstp st(1)
jmp 0x4327c2
fstp st(2)
fstp st(3)
fxch st(2)
fsub st(2), st(0)
push 2
fxch st(2)
sub esp, 8
lea eax, [esp + 0xa0]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp dword [esp + 4]
fsubrp st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp dword [esp]
push eax
push edi
call fcn.004553c0
jmp 0x43279c
fstp st(3)
mov ecx, ebx
mov eax, edi
call fcn.004533e0
mov ecx, edi
push eax
lea eax, [esp + 0xa8]
call fcn.00453380
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(1)
cmp byte [edi + 0x181], 0
mov eax, dword [eax]
mov dword [esp + 0x18], eax
je 0x432900
movzx edx, byte [esp + 0x13]
mov ecx, eax
shr ecx, 0x18
add ecx, 1
imul ecx, edx
sar ecx, 8
mov byte [esp + 0x13], cl
jmp 0x432936
cmp byte [esp + 0xc4], 0
je 0x432906
fxch st(4)
fcom st(3)
fnstsw ax
test ah, 0x41
jne 0x4328a6
fxch st(3)
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x4328ae
push 2
fxch st(4)
sub esp, 0x10
fstp dword [esp + 0xc]
lea eax, [esp + 0xb4]
fxch st(1)
fstp dword [esp + 8]
fsub st(2), st(0)
fxch st(2)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp + 4]
fsubrp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp]
push eax
call fcn.00457510
jmp 0x4328e4
fstp st(0)
fstp st(4)
fstp st(1)
jmp 0x4328b4
fstp st(2)
fstp st(3)
fxch st(2)
fsub st(2), st(0)
push 2
fxch st(2)
sub esp, 8
lea ecx, [esp + 0xa4]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp dword [esp + 4]
fsubrp st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp dword [esp]
push ecx
push edi
call fcn.004553c0
fld dword [esp + 0x24]
mov eax, dword [eax]
fld dword [esp + 0x1c]
mov dword [esp + 0x18], eax
fld dword [esp + 0x30]
fld dword [esp + 0x28]
fld qword [0x4c1410]
mov cl, byte [esp + 0x13]
jmp 0x432936
mov edx, dword [esp + 0x7c]
fstp st(3)
lea eax, [edx + ebx*2]
fxch st(4)
movzx edx, byte [eax + ebx]
fxch st(2)
add eax, ebx
fxch st(3)
add eax, 1
fxch st(1)
mov byte [esp + 0x18], dl
movzx edx, byte [eax]
mov al, byte [eax + 1]
mov byte [esp + 0x19], dl
mov byte [esp + 0x1a], al
mov eax, dword [esp + 0x18]
cmp dword [edi + 0x28], 0
je 0x432946
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x40]
jmp 0x43294a
cmp eax, dword [esp + 0x38]
jne 0x432957
cmp byte [esp + 0x2e], 0
jne 0x432abb
test cl, cl
je 0x432abb
cmp cl, 0xff
jne 0x43298e
mov al, byte [esp + 0x18]
mov cl, byte [esp + 0x19]
mov dl, byte [esp + 0x1a]
mov byte [ebp], al
add ebp, 1
mov byte [ebp], cl
add ebp, 1
mov byte [ebp], dl
add ebp, 1
mov byte [ebp], 0xff
add ebp, 1
jmp 0x432abe
movzx edx, byte [ebp + 1]
xor eax, eax
mov ah, byte [ebp + 3]
mov al, byte [ebp + 2]
shl eax, 8
or eax, edx
movzx edx, byte [ebp]
shl eax, 8
or eax, edx
xor edx, edx
mov dh, cl
movzx ecx, byte [esp + 0x1a]
mov dword [esp + 0x14], eax
or edx, ecx
movzx ecx, byte [esp + 0x19]
shl edx, 8
or edx, ecx
movzx ecx, byte [esp + 0x18]
shl edx, 8
or ecx, edx
mov dword [esp + 0x1c], ecx
mov dl, byte [esp + 0x1f]
test dl, dl
je 0x432ab8
cmp dl, 0xff
jne 0x4329e7
mov eax, ecx
jmp 0x432ab8
movzx ebx, byte [esp + 0x17]
movzx esi, byte [esp + 0x1f]
mov ecx, ebx
imul ecx, esi
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, byte [esp + 0x17]
sub al, dl
add al, byte [esp + 0x1f]
mov dword [esp + 0x20], esi
mov byte [esp + 0x13], al
je 0x432aac
movzx edx, byte [esp + 0x14]
movzx eax, al
shl eax, 8
mov dword [esp + 0x48], eax
movzx eax, byte [esp + 0x1c]
imul eax, esi
mov esi, edx
imul edx, ecx
imul esi, ebx
add eax, esi
mov esi, dword [esp + 0x48]
shl eax, 8
sub eax, edx
cdq
idiv esi
movzx edx, byte [esp + 0x15]
mov dword [esp + 0x48], edx
imul edx, ebx
mov byte [esp + 0x14], al
movzx eax, byte [esp + 0x1d]
imul eax, dword [esp + 0x20]
add eax, edx
mov edx, dword [esp + 0x48]
imul edx, ecx
shl eax, 8
sub eax, edx
cdq
idiv esi
movzx edx, byte [esp + 0x16]
mov dword [esp + 0x48], edx
imul edx, ebx
mov byte [esp + 0x15], al
movzx eax, byte [esp + 0x1e]
imul eax, dword [esp + 0x20]
add eax, edx
mov edx, dword [esp + 0x48]
imul edx, ecx
shl eax, 8
sub eax, edx
cdq
idiv esi
mov byte [esp + 0x16], al
mov al, byte [esp + 0x13]
mov esi, dword [esp + 0x3c]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x14]
mov dword [ebp], eax
add ebp, 4
sub dword [esp + 0x60], 1
fld st(1)
faddp st(4)
fxch st(3)
fstp dword [esp + 0x1c]
fld1
fxch st(2)
fxch st(4)
fxch st(1)
fxch st(3)
fxch st(1)
jne 0x4326d3
mov eax, 1
fadd st(4)
add dword [esp + 0x4c], eax
sub dword [esp + 0x58], eax
fstp dword [esp + 0x24]
jne 0x432663
fstp st(0)
fstp st(1)
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0xb0]
push eax
push ecx
call dword [sym.imp.GDI32.dll_RestoreDC]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x98
ret 0x1c