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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x158
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x20], esi
call fcn.004089d0
push 0x40
mov edi, eax
lea eax, [esp + 0x12c]
push 0
push eax
call fcn.0074d440
fldz
add esp, 0xc
lea ecx, [esp + 0x128]
push ecx
push ecx
mov ecx, edi
fstp dword [esp]
call fcn.004da0f0
fldz
mov ecx, 5
lea eax, [esp + 0xe8]
fst dword [eax - 8]
add eax, 0xc
sub ecx, 1
fst dword [eax - 0x10]
fst dword [eax - 0xc]
jns 0x435814
mov ebp, dword [0x794410]
fstp st(0)
push 0xb50
call ebp
mov edi, dword [0x794420]
push 0xde1
call edi
push 0xbe2
call edi
push 0
call dword [0x794428]
push 1
push 0x302
call dword [0x7943a8]
push 0x2100
push 0x2200
push 0x2300
call dword [0x794414]
cmp byte [0x992082], 0
je 0x435886
push 0x1ab9950
call dword [0x794290]
cmp byte [0x992082], 0
mov ebx, dword [esi + 0x9c]
lea edi, [esi + 0x9c]
je 0x4358a6
push 0x1ab9950
call dword [0x79428c]
test ebx, ebx
je 0x435d69
mov ecx, edi
call fcn.00435310
push eax
push 0xde1
call dword [0x7943d0]
mov ecx, dword [esi + 0x50]
mov eax, ecx
cdq
sub eax, edx
mov ebx, eax
lea eax, [ecx - 1]
sar ebx, 1
xor edi, edi
test eax, eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], eax
jle 0x435d69
mov dword [esp + 0x2c], ecx
fldz
lea eax, [esp + 0x70]
fst dword [esp + 0x64]
mov ecx, 3
fst dword [esp + 0x68]
fst dword [esp + 0x58]
fst dword [esp + 0x5c]
fst dword [eax]
add eax, 8
sub ecx, 1
fst dword [eax - 4]
jns 0x435901
push edi
fstp st(0)
lea edx, [esp + 0xbc]
add esi, 0x14
push edx
mov ecx, esi
call fcn.005b2710
lea ebp, [edi + 1]
push ebp
lea eax, [esp + 0xe4]
push eax
mov ecx, esi
mov dword [esp + 0x38], ebp
call fcn.005b2710
lea ecx, [esp + 0x64]
push ecx
push edi
lea edx, [esp + 0xb4]
push edx
mov ecx, esi
call fcn.005b23e0
mov ecx, dword [esp + 0x24]
push eax
call fcn.004353a0
test al, al
je 0x435d4e
lea eax, [esp + 0x58]
push eax
push ebp
lea ecx, [esp + 0xa8]
push ecx
mov ecx, esi
call fcn.005b23e0
mov esi, dword [esp + 0x24]
push eax
mov ecx, esi
call fcn.004353a0
test al, al
je 0x435d4e
fld dword [0x7bb508]
sub esp, 8
fstp dword [esp + 4]
fld dword [0x7c1348]
fstp dword [esp]
call fcn.005af630
add esp, 8
fstp st(0)
cmp byte [0x992082], 0
je 0x4359be
push 0x1ab9950
call dword [0x794290]
cmp byte [0x992082], 0
lea eax, [esi + 0x9c]
mov esi, dword [eax]
je 0x4359da
push 0x1ab9950
call dword [0x79428c]
mov eax, dword [esi + 0x20]
shr eax, 1
cmp edi, ebx
mov ebp, eax
mov ecx, eax
jge 0x435a35
mov eax, edi
cdq
idiv ebx
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0x20]
fild dword [esp + 0x10]
shr edx, 1
test edx, edx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
jge 0x435a0b
fadd dword [0x7bb540]
fmulp st(1)
fnstcw word [esp + 0x1c]
fidiv dword [esp + 0x28]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov ebp, dword [esp + 0x10]
fldcw word [esp + 0x1c]
jmp 0x435a85
jle 0x435a85
mov eax, dword [esp + 0x2c]
cdq
idiv ebx
mov eax, dword [esi + 0x20]
shr eax, 1
test eax, eax
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jge 0x435a5d
fadd dword [0x7bb540]
fmulp st(1)
fnstcw word [esp + 0x1c]
fidiv dword [esp + 0x28]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov ebp, dword [esp + 0x10]
fldcw word [esp + 0x1c]
mov eax, dword [esp + 0x30]
cmp eax, ebx
jge 0x435ad9
cdq
idiv ebx
mov ecx, dword [esi + 0x20]
shr ecx, 1
test ecx, ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
jge 0x435aaf
fadd dword [0x7bb540]
fmulp st(1)
fnstcw word [esp + 0x1c]
fidiv dword [esp + 0x28]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov ecx, dword [esp + 0x10]
fldcw word [esp + 0x1c]
jmp 0x435b2c
jle 0x435b2c
mov eax, dword [esp + 0x2c]
add eax, 0xffffffff
cdq
idiv ebx
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0x20]
fild dword [esp + 0x10]
shr edx, 1
test edx, edx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
jge 0x435b04
fadd dword [0x7bb540]
fmulp st(1)
fnstcw word [esp + 0x1c]
fidiv dword [esp + 0x28]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov ecx, dword [esp + 0x10]
fldcw word [esp + 0x1c]
test ebp, ebp
mov dword [esp + 0x10], ebp
fild dword [esp + 0x10]
jge 0x435b3e
fadd dword [0x7bb540]
test ecx, ecx
fstp dword [esp + 0x10]
fld dword [esp + 0x64]
fld st(0)
fld dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fld st(0)
fsubp st(2)
fxch st(1)
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x40]
fld dword [esp + 0x68]
mov dword [esp + 0x70], eax
fst dword [esp + 0x44]
mov edx, dword [esp + 0x44]
fxch st(1)
mov dword [esp + 0x74], edx
faddp st(2)
fxch st(1)
fstp dword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x78], eax
fstp dword [esp + 0x4c]
mov edx, dword [esp + 0x4c]
fild dword [esp + 0x10]
mov dword [esp + 0x7c], edx
jge 0x435b9e
fadd dword [0x7bb540]
cmp byte [0x992082], 0
fstp dword [esp + 0x10]
fld dword [esp + 0x58]
fld st(0)
fld dword [esp + 0x10]
fld st(0)
fsubp st(2)
fxch st(1)
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fld dword [esp + 0x5c]
mov dword [esp + 0x80], eax
fst dword [esp + 0x3c]
mov ecx, dword [esp + 0x3c]
fxch st(1)
mov dword [esp + 0x84], ecx
faddp st(2)
fxch st(1)
fstp dword [esp + 0x50]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x88], edx
fstp dword [esp + 0x54]
mov eax, dword [esp + 0x54]
fld dword [esp + 0xd8]
mov dword [esp + 0x8c], eax
fstp dword [esp + 0x94]
fld dword [esp + 0x100]
fstp dword [esp + 0x9c]
je 0x435c28
push 0x1ab9950
call dword [0x794290]
mov ecx, dword [esi + 0x2c]
fild dword [esi + 0x2c]
test ecx, ecx
jge 0x435c38
fadd dword [0x7bb540]
mov edx, dword [esi + 0x24]
fild dword [esi + 0x24]
test edx, edx
jge 0x435c48
fadd dword [0x7bb540]
fdivp st(1)
mov eax, dword [esi + 0x28]
test eax, eax
fstp dword [esp + 0x24]
fild dword [esi + 0x28]
jge 0x435c5e
fadd dword [0x7bb540]
mov ecx, dword [esi + 0x20]
fild dword [esi + 0x20]
test ecx, ecx
jge 0x435c6e
fadd dword [0x7bb540]
fdivp st(1)
push 0xff
push 0xff
push 0xff
push 0xff
fstp dword [esp + 0x20]
fld dword [esp + 0xa4]
fld dword [esp + 0x34]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fmul dword [esp + 0xac]
fstp dword [esp + 0x34]
call dword [0x7942bc]
push 7
call dword [0x7943fc]
fld dword [esp + 0x24]
mov esi, dword [0x7942b8]
sub esp, 8
fstp dword [esp + 4]
fldz
fstp dword [esp]
call esi
mov edi, dword [0x7942b4]
lea edx, [esp + 0x80]
push edx
call edi
fld dword [esp + 0x1c]
sub esp, 8
fstp dword [esp + 4]
fldz
fstp dword [esp]
call esi
lea eax, [esp + 0x70]
push eax
call edi
fld dword [esp + 0x1c]
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x18]
fstp dword [esp]
call esi
lea ecx, [esp + 0x78]
push ecx
call edi
fld dword [esp + 0x24]
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x18]
fstp dword [esp]
call esi
lea edx, [esp + 0x88]
push edx
call edi
call dword [0x794404]
cmp byte [0x992082], 0
je 0x435d4a
push 0x1ab9950
call dword [0x79428c]
mov ebp, dword [esp + 0x30]
sub dword [esp + 0x2c], 1
mov esi, dword [esp + 0x20]
mov edi, ebp
cmp edi, dword [esp + 0x34]
jl 0x4358e6
mov ebp, dword [0x794410]
fldz
sub esp, 8
fmul qword [0x7c1340]
mov eax, esp
lea ecx, [esi + 0x14]
mov dword [esp + 0x3c], esp
fstp dword [eax]
fld dword [0x7c1338]
fstp dword [eax + 4]
call fcn.005b22c0
push 0xbe2
call ebp
push 0xde1
call ebp
push 0xbc0
call ebp
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret