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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x364
fld qword [0x452f84c0]
mov eax, dword [0x45400e80]
fstp qword [esp + 0xb4]
push ebx
fld qword [0x452f84c0]
push esi
fstp qword [esp + 0xc4]
xor esi, esi
cmp eax, 0xa
fld qword [0x452f84c0]
fstp qword [esp + 0xcc]
push edi
fld qword [0x452f84c0]
mov edi, 1
fstp qword [esp + 0xd8]
mov dword [esp + 0x40], 0x10
fld qword [0x452f84a8]
mov dword [esp + 0x3c], esi
fstp qword [esp + 0xa0]
mov dword [esp + 0x44], esi
fld qword [0x452f84a8]
mov dword [esp + 0x38], edi
fstp qword [esp + 0xa8]
mov dword [esp + 0x34], edi
fld qword [0x452f84a8]
mov byte [esp + 0x2c], 0
fstp qword [esp + 0xb0]
mov byte [esp + 0x2d], 1
fld qword [0x452f84a8]
mov byte [esp + 0x2e], 2
fstp qword [esp + 0xb8]
mov byte [esp + 0x2f], 3
fld qword [0x452f84c0]
mov dword [esp + 0x78], esi
fstp qword [esp + 0x60]
mov dword [esp + 0x7c], esi
fld qword [0x452f84c0]
mov dword [esp + 0x80], esi
fstp qword [esp + 0x68]
mov dword [esp + 0x84], esi
fld qword [0x452f84c0]
mov dword [esp + 0x88], esi
fstp qword [esp + 0x70]
mov dword [esp + 0x8c], 0xfff
mov dword [esp + 0x48], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x4c], esi
jae 0x10017384
mov dword [esp + 0x28], eax
add eax, edi
mov dword [0x45400e80], eax
xor eax, eax
lea ecx, [esp + 0x198]
mov edi, edi
xor edx, edx
cmp eax, esi
sete dl
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
xor edx, edx
cmp eax, edi
sete dl
fstp qword [ecx - 8]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
xor edx, edx
cmp eax, 2
sete dl
fstp qword [ecx]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
xor edx, edx
cmp eax, 3
sete dl
fstp qword [ecx + 8]
add eax, edi
add ecx, 0x20
cmp eax, 4
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp qword [ecx - 0x10]
jl 0x100172e0
mov eax, dword [0x453e0d24]
push eax
push 2
lea ecx, [esp + 0x20]
push edi
push ecx
mov byte [esp + 0x28], 0xff
mov byte [esp + 0x29], 0xff
call fcn.10028910
add esp, 0x10
xor eax, eax
cmp word [0x453c0590], 0x4949
jne 0x1001736a
mov ah, byte [esp + 0x19]
mov al, byte [esp + 0x18]
jmp 0x10017376
movzx dx, byte [esp + 0x19]
mov ah, byte [esp + 0x18]
or eax, edx
movzx eax, ax
cmp eax, 0x200
mov dword [esp + 0x30], eax
jbe 0x1001738d
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, esi
je 0x10018e5f
jmp 0x100173a0
mov edi, dword [ebp + 8]
sub dword [esp + 0x30], 1
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x68]
push eax
push edi
call fcn.10014560
mov esi, dword [esp + 0x70]
add esp, 0x14
cmp esi, 0x12
ja 0x1001746d
cmp esi, 0x11
jae 0x10017435
add esi, 0xfffffffe
cmp esi, 9
ja 0x10018d8c
jmp dword [esi*4 + 0x452d9198]
cmp dword [esp + 0xc], 3
jne 0x10018d8c
cmp dword [esp + 0x24], 1
jne 0x10018d8c
call fcn.10002b60
movzx ecx, ax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x452f8a58]
fstp dword [esi*8 + 0x453c0a38]
jmp 0x10018d8c
cmp esi, 0x8773
ja 0x10017e92
je 0x10018833
cmp esi, 0x143
ja 0x1001798b
je 0x1001795c
cmp esi, 0x110
ja 0x100176b6
je 0x100176a3
lea eax, [esi - 0x17]
cmp eax, 0xf8
ja 0x10018d8c
movzx edx, byte [eax + 0x452d91f0]
jmp dword [edx*4 + 0x452d91c0]
mov edx, dword [0x453e0d24]
push edx
push 0x40
push 0x453c09e0
jmp 0x10018d84
add esi, 0xfffffeef
cmp esi, 0x31
ja 0x10018d8c
movzx eax, byte [esi + 0x452d9318]
jmp dword [eax*4 + 0x452d92ec]
cmp dword [esp + 0xc], 3
jne 0x1001796d
call fcn.10002b60
movzx eax, ax
jmp 0x10017972
call fcn.10002bb0
mov ecx, dword [esp + 0x28]
lea edx, [ecx + ecx*2]
add edx, edx
add edx, edx
sub edx, ecx
mov dword [edx*4 + 0x453e0b48], eax
jmp 0x10018d8c
cmp esi, 0x7313
ja 0x10017ca4
je 0x10017c22
cmp esi, 0x7010
ja 0x10017b77
je 0x10017b0a
add esi, 0xfffffebc
cmp esi, 0xbe
ja 0x10018d8c
movzx eax, byte [esi + 0x452d9364]
jmp dword [eax*4 + 0x452d934c]
xor esi, esi
lea esp, [esp]
call fcn.10002b60
add esi, 1
shr eax, 2
and eax, 0xfff
cmp esi, 4
mov dword [esp + esi*4 + 0x78], eax
jl 0x10017b10
xor ecx, ecx
jmp 0x10017b30
mov eax, dword [esp + ecx*4 + 0x78]
add eax, 1
cmp eax, dword [esp + ecx*4 + 0x7c]
ja 0x10017b6a
mov esi, dword [esp + ecx*4 + 0x7c]
mov edx, 1
shl edx, cl
jmp 0x10017b50
mov di, word [eax*2 + 0x453c0ade]
add di, dx
mov word [eax*2 + 0x453c0ae0], di
add eax, 1
cmp eax, esi
jbe 0x10017b50
add ecx, 1
cmp ecx, 5
jl 0x10017b30
jmp 0x10018d8c
cmp esi, 0x7221
ja 0x10017bbc
je 0x10017bae
sub esi, 0x7200
je 0x10017ba0
sub esi, 1
jne 0x10018d8c
call fcn.10002bb0
mov dword [esp + 0x58], eax
jmp 0x10018d8c
call fcn.10002bb0
mov dword [esp + 0x48], eax
jmp 0x10018d8c
call fcn.10002bb0
mov dword [esp + 0x4c], eax
jmp 0x10018d8c
cmp esi, 0x7250
je 0x10017c00
cmp esi, 0x7303
jne 0x10018d8c
xor esi, esi
call fcn.10002b60
xor edx, edx
cmp esi, 2
setl dl
movzx ecx, ax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
xor edx, esi
add esi, 1
fstp dword [edx*4 + 0x453c0ac0]
cmp esi, 4
jl 0x10017bd2
jmp 0x10018d8c
mov eax, dword [0x453e0d24]
push eax
call fcn.10028cd0
push eax
call fcn.10019ed0
add esp, 8
mov word [0x45400ee4], 0
jmp 0x10018d8c
mov esi, 0x453c0ac0
call fcn.10002b60
movzx ecx, ax
mov dword [esp + 0x10], ecx
add esi, 4
cmp esi, 0x453c0ad0
fild dword [esp + 0x10]
fstp dword [esi - 4]
jl 0x10017c27
fld dword [0x452f8d10]
fld dword [0x453c0ac4]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10017c76
fld dword [0x452f8d10]
fld dword [0x453c0ac8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10017c76
mov eax, 1
jmp 0x10017c78
xor eax, eax
add eax, eax
fld dword [eax*4 + 0x453c0ac0]
lea ecx, [eax*4 + 0x453c0ac4]
fadd dword [ecx]
lea eax, [eax*4 + 0x453c0ac0]
fst dword [eax]
fsub dword [ecx]
fst dword [ecx]
fld dword [eax]
fsub st(1)
fstp dword [eax]
fstp st(0)
jmp 0x10018d8c
cmp esi, 0x85ff
ja 0x10017d0a
je 0x10017e44
add esi, 0xffff7d83
cmp esi, 0x20
ja 0x10018d8c
movzx edx, byte [esi + 0x452d943c]
jmp dword [edx*4 + 0x452d9424]
cmp esi, 0x8606
ja 0x10017e5f
je 0x10017e2f
sub esi, 0x8602
je 0x10017dfa
sub esi, 1
jne 0x10018d8c
mov eax, dword [0x453e0d24]
push eax
push 7
lea ecx, [esp + 0xf8]
push 1
push ecx
call fcn.10028910
push 6
lea edx, [esp + 0x104]
push 0x452f8d08
push edx
call fcn.10027c60
add esp, 0x1c
test eax, eax
jne 0x10018d8c
xor ebx, ebx
mov dword [0x453c05a0], 4
mov dword [0x453c08c4], ebx
mov edi, 0x45400d44
mov edi, edi
xor esi, esi
mov edx, dword [0x453e0d24]
mov eax, esi
xor eax, 1
add eax, ebx
lea ecx, [eax*4 + 0x45400d40]
push ecx
push 0x452f8c18
push edx
call fcn.10029f70
add esi, 1
add esp, 0xc
cmp esi, 4
jl 0x10017d82
cmp dword [0x453c036c], 0
je 0x10017de7
fld dword [edi - 4]
fadd dword [edi]
fadd dword [edi + 4]
fadd dword [edi + 8]
fdivr qword [0x452f84c0]
fld dword [edi - 4]
fmul st(1)
fstp dword [edi - 4]
fld dword [edi]
fmul st(1)
fstp dword [edi]
fld dword [edi + 4]
fmul st(1)
fstp dword [edi + 4]
fld dword [edi + 8]
fmul st(1)
fstp dword [edi + 8]
fstp st(0)
add edi, 0x10
add ebx, 4
cmp edi, 0x45400d74
jl 0x10017d80
jmp 0x10018d8c
xor esi, esi
lea esp, [esp]
call fcn.10002b60
movzx eax, ax
mov dword [esp + 0x10], eax
mov ecx, esi
xor ecx, 1
fild dword [esp + 0x10]
add esi, 1
cmp esi, 4
fdivr qword [0x452f8d00]
fstp dword [ecx*4 + 0x453c0ac0]
jl 0x10017e00
jmp 0x10018d8c
mov edx, dword [0x453e0d24]
push edx
call fcn.10028cd0
push eax
call fcn.100167d0
add esp, 8
mov eax, dword [0x452f788c]
mov cl, byte [0x452f7890]
mov dword [0x45400da0], eax
mov byte [0x45400da4], cl
jmp 0x10018d8c
cmp esi, 0x8769
jne 0x10018d8c
push 0
call fcn.10002bb0
mov esi, dword [ebp + 8]
mov edx, dword [0x453e0d24]
add eax, esi
push eax
push edx
call fcn.10028b60
push esi
call fcn.100162b0
add esp, 0x10
jmp 0x10018d8c
cmp esi, 0xc624
ja 0x10018653
cmp esi, 0xc623
jae 0x100185e8
cmp esi, 0xc51b
ja 0x10018393
je 0x1001832b
cmp esi, 0xa010
ja 0x10017fce
je 0x10017fb5
cmp esi, 0x920a
ja 0x10017f36
je 0x10017f1e
cmp esi, 0x8825
je 0x10017efb
cmp esi, 0x9102
jne 0x10018d8c
call fcn.10002bb0
mov dword [0x453c08a4], eax
jmp 0x10018d8c
push 0
call fcn.10002bb0
add eax, edi
push eax
mov eax, dword [0x453e0d24]
push eax
call fcn.10028b60
push edi
call fcn.10016590
add esp, 0x10
jmp 0x10018d8c
mov ecx, dword [esp + 0xc]
push ecx
call fcn.10002c40
fstp dword [0x453c0ad4]
add esp, 4
jmp 0x10018d8c
sub esi, 0x9211
je 0x10017f9e
sub esi, 7
jne 0x10018d8c
mov ebx, dword [esp + 0xc]
mov dword [0x453c08c4], 0
mov dword [esp + 0x18], 0x45400d40
lea ecx, [ecx]
push ebx
call fcn.10002c40
fstp st(0)
mov esi, dword [esp + 0x1c]
add esp, 4
mov edi, 3
push ebx
call fcn.10002c40
fstp dword [esi]
add esp, 4
add esi, 4
sub edi, 1
jne 0x10017f74
mov eax, dword [esp + 0x18]
add eax, 0x10
cmp eax, 0x45400d70
mov dword [esp + 0x18], eax
jl 0x10017f60
jmp 0x10018d8c
mov edx, dword [esp + 0xc]
push edx
call fcn.10002c20
add esp, 4
mov dword [0x453c0a64], eax
jmp 0x10018d8c
call fcn.10002bb0
mov dword [0x453e0b00], eax
mov dword [0x453e0ce0], 0x452cb8c0
jmp 0x10018d8c
cmp esi, 0xb4c7
ja 0x1001823d
je 0x10018031
sub esi, 0xb4c2
je 0x1001804f
sub esi, 1
jne 0x10018d8c
mov eax, dword [0x452f8cf4]
mov cx, word [0x452f8cf8]
mov dl, byte [0x452f8cfa]
mov dword [0x45400da0], eax
mov eax, dword [0x453e0d24]
push eax
mov word [0x45400da4], cx
mov byte [0x45400da6], dl
call fcn.10028cd0
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [0x453c0688], eax
mov dword [esp + 0x44], ecx
jmp 0x10018d8c
cmp dword [esp + 0x44], 0
je 0x10018d8c
mov edx, dword [0x453e0d24]
push 1
push 0x26
push edx
call fcn.10028b60
add esp, 0xc
mov eax, dword [0x453e0d24]
push 1
push 0x28
push eax
call fcn.10028b60
add esp, 0xc
call fcn.10002bb0
mov word [0x45400ee4], ax
call fcn.10002bb0
mov word [0x453c0680], ax
call fcn.10002bb0
and eax, 7
mov word [0x453c0a20], ax
call fcn.10002bb0
mov cx, word [0x45400ee4]
and eax, 7
sub cx, ax
sub cx, word [0x453c0a20]
mov word [0x453c09c0], cx
call fcn.10002bb0
and eax, 7
mov word [0x45400ef8], ax
call fcn.10002bb0
mov dx, word [0x453c0680]
and eax, 7
sub dx, ax
sub dx, word [0x45400ef8]
cmp word [0x45400ee4], 0x1c5e
mov word [0x45400ee6], dx
jne 0x100180f9
mov word [0x45400ee6], 0x1544
mov word [0x453c09c0], 0x1c4c
mov word [0x453c0a20], 7
mov eax, dword [0x453e0d24]
push 1
push 0x34
push eax
call fcn.10028b60
add esp, 0xc
mov esi, 0x453c0ac0
call fcn.10002bb0
mov ecx, eax
mov dword [esi], ecx
add esi, 4
cmp esi, 0x453c0acc
mov dword [esp + 0x10], eax
jl 0x10018110
mov edx, dword [0x453e0d24]
push 1
push 0x72
push edx
call fcn.10028b60
add esp, 0xc
call fcn.10002b60
mov si, word [0x45400ee6]
mov di, word [0x453c09c0]
movzx ecx, ax
shr ecx, 7
mov eax, ecx
shl eax, 4
sub eax, ecx
movzx ecx, si
movzx edx, di
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + eax*2]
add eax, eax
add ecx, ecx
cmp ecx, dword [esp + 0x44]
mov dword [0x453e0d20], eax
jne 0x100181d0
xor edx, edx
mov ecx, 0xb4
div ecx
cmp edx, 0x5a
jne 0x100181a4
add di, si
mov dx, di
sub dx, si
mov si, dx
sub di, si
mov word [0x45400ee6], si
mov word [0x453c09c0], di
xor ebx, ebx
mov word [0x45400ee4], di
mov word [0x453c0680], si
mov dword [0x453e0d20], ebx
mov dword [0x453c0ad0], ebx
mov word [0x45400ef8], bx
mov word [0x453c0a20], bx
jmp 0x100181d2
xor ebx, ebx
movzx eax, di
movzx ecx, si
imul ecx, eax
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push 0x452f8ce4
push 0x453c09e0
call fcn.1002fb40
add esp, 0xc
cmp dword [0x453c0ad0], ebx
mov dword [0x453e0ce0], 0x452c82e0
je 0x1001822e
test byte [0x453c0a20], 1
je 0x10018224
mov dword [0x453c0ad0], 0x61616161
mov dword [0x453e0ce0], 0x452c7e90
mov dword [0x453c09c4], 0xffff
jmp 0x10018d8c
cmp esi, 0xc516
jb 0x10018d8c
cmp esi, 0xc517
jbe 0x1001829f
cmp esi, 0xc51a
jne 0x10018d8c
cmp byte [0x45400da0], 0
jne 0x10018d8c
mov edx, dword [0x452f8cd8]
mov eax, dword [0x452f8cdc]
mov cx, word [0x452f8ce0]
mov dword [0x45400da0], edx
mov dl, byte [0x452f8ce2]
mov dword [0x45400da4], eax
mov word [0x45400da8], cx
mov byte [0x45400daa], dl
jmp 0x10018d8c
mov edi, dword [esp + 0x24]
push edi
call fcn.1002bb10
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10018d8c
mov eax, dword [0x453e0d24]
push eax
push edi
push 1
push ebx
call fcn.10028910
lea esi, [ebx - 1]
add esp, 0x10
test esi, esi
je 0x1001831d
add edi, ebx
cmp esi, edi
jae 0x1001831d
push 8
add esi, 1
push 0x452f8ccc
push esi
call fcn.10027c60
add esp, 0xc
test eax, eax
jne 0x1001830c
push 0x453c0ac8
push 0x453c0ac4
push 0x453c0ac0
lea ecx, [esi + 8]
push 0x452f8cc0
push ecx
call fcn.10028ea0
add esp, 0x14
push 0xa
push esi
call fcn.10027d40
mov esi, eax
add esp, 8
test esi, esi
jne 0x100182d1
push ebx
call fcn.1002bb90
add esp, 4
jmp 0x10018d8c
mov edx, dword [0x453e0d24]
movsx edi, word [0x453c0590]
push edx
call fcn.10028cd0
mov ebx, dword [0x45400e80]
add esp, 4
mov esi, eax
call fcn.10002b60
mov word [0x453c0590], ax
call fcn.10002b60
push 0
call fcn.10002bb0
add eax, esi
push eax
mov eax, dword [0x453e0d24]
push eax
call fcn.10028b60
push esi
call fcn.100171c0
add esp, 0x10
mov dword [0x453c09c4], 0xffff
mov dword [0x45400e80], ebx
mov word [0x453c0590], di
jmp 0x10018d8c
add esi, 0xffff39ee
cmp esi, 0x10
ja 0x10018d8c
jmp dword [esi*4 + 0x452d9460]
mov eax, dword [0x453c05a0]
test eax, eax
mov dword [esp + 0x10], 0
jbe 0x10018d8c
mov ebx, dword [esp + 0xc]
lea ecx, [esp + 0x190]
mov dword [esp + 0x18], ecx
lea esp, [esp]
xor esi, esi
test eax, eax
jbe 0x1001863a
mov edi, dword [esp + 0x18]
lea ebx, [ebx]
push ebx
call fcn.10002c40
fstp qword [edi]
mov eax, dword [0x453c05a0]
add esi, 1
add esp, 4
add edi, 8
cmp esi, eax
jb 0x10018620
mov ecx, dword [esp + 0x10]
add dword [esp + 0x18], 0x20
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x10], ecx
jb 0x10018610
jmp 0x10018d8c
cmp esi, 0xf002
ja 0x10018924
je 0x100188f5
cmp esi, 0xc68d
ja 0x10018814
je 0x1001878d
add esi, 0xffff39d9
cmp esi, 0x19
ja 0x10018d8c
movzx edx, byte [esi + 0x452d94bc]
jmp dword [edx*4 + 0x452d94a4]
mov esi, dword [esp + 0xc]
cmp esi, 3
jne 0x100187b6
call fcn.10002b60
mov word [0x45400ef8], ax
call fcn.10002b60
mov word [0x453c0a20], ax
call fcn.10002b60
movzx eax, ax
jmp 0x100187d1
call fcn.10002bb0
mov word [0x45400ef8], ax
call fcn.10002bb0
mov word [0x453c0a20], ax
call fcn.10002bb0
sub ax, word [0x45400ef8]
cmp esi, 3
mov word [0x45400ee6], ax
jne 0x100187fd
call fcn.10002b60
movzx eax, ax
sub ax, word [0x453c0a20]
mov word [0x453c09c0], ax
jmp 0x10018d8c
call fcn.10002bb0
sub ax, word [0x453c0a20]
mov word [0x453c09c0], ax
jmp 0x10018d8c
cmp esi, 0xc741
ja 0x100188a7
je 0x1001888f
sub esi, 0xc68e
je 0x10018856
sub esi, 1
jne 0x10018d8c
mov ecx, dword [0x453e0d24]
push ecx
call fcn.10028cd0
mov edx, dword [esp + 0x28]
add esp, 4
mov dword [0x45400d7c], eax
mov dword [0x453c0a74], edx
jmp 0x10018d8c
mov edi, dword [esp + 0x24]
xor esi, esi
test edi, edi
jbe 0x10018880
mov ebx, dword [esp + 0xc]
cmp esi, 0x20
jge 0x10018880
push ebx
call fcn.10002c20
mov dword [esi*4 + 0x45400e00], eax
add esi, 1
add esp, 4
cmp esi, edi
jb 0x10018864
mov dword [0x453e0ce4], 0
jmp 0x10018d8c
mov eax, dword [0x453e0d24]
push eax
call fcn.10028cd0
add esp, 4
mov dword [0x453c059c], eax
jmp 0x10018d8c
sub esi, 0xf000
je 0x100188e7
sub esi, 1
jne 0x10018d8c
cmp dword [esp + 0xc], 3
jne 0x100188c9
call fcn.10002b60
movzx eax, ax
jmp 0x100188ce
call fcn.10002bb0
mov ecx, dword [esp + 0x28]
lea edx, [ecx + ecx*2]
add edx, edx
add edx, edx
sub edx, ecx
mov dword [edx*4 + 0x453e0b20], eax
jmp 0x10018d8c
push edi
call fcn.100171c0
add esp, 4
jmp 0x10018d8c
cmp dword [esp + 0xc], 3
jne 0x10018906
call fcn.10002b60
movzx eax, ax
jmp 0x1001890b
call fcn.10002bb0
mov ecx, dword [esp + 0x28]
lea edx, [ecx + ecx*2]
add edx, edx
add edx, edx
sub edx, ecx
mov dword [edx*4 + 0x453e0b24], eax
jmp 0x10018d8c
cmp esi, 0xf00e
ja 0x10018bdb
je 0x10018b8e
add esi, 0xffff0ffd
cmp esi, 7
ja 0x10018d8c
jmp dword [esi*4 + 0x452d94d8]
mov edi, dword [esp + 0xc]
mov esi, 4
cmp edi, 3
jne 0x10018ba6
call fcn.10002b60
movzx eax, ax
jmp 0x10018bab
call fcn.10002bb0
test eax, eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jge 0x10018bbd
fadd dword [0x452f8600]
mov eax, esi
cdq
mov ecx, 3
idiv ecx
sub esi, 1
cmp esi, 1
fstp dword [edx*4 + 0x453c0ac0]
jg 0x10018b97
jmp 0x10018d8c
add esi, 0xffff02fc
cmp esi, 0xfe
ja 0x10018d8c
movzx edx, byte [esi + 0x452d950c]
jmp dword [edx*4 + 0x452d94f8]
call fcn.10029ef0
add esp, 0xc
mov edx, dword [esp + 0x50]
mov eax, dword [0x453e0d24]
push 0
push edx
push eax
call fcn.10028b60
add esp, 0xc
cmp dword [esp + 0x30], 0
jne 0x100173a0
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x10018e5f
push ebx
call fcn.1002bb10
mov esi, eax
add esp, 4
test esi, esi
je 0x10018e5f
mov edi, dword [esp + 0x48]
mov ecx, dword [0x453e0d24]
push 0
push edi
push ecx
call fcn.10028b60
mov edx, dword [0x453e0d24]
push edx
push 1
push ebx
push esi
call fcn.10028910
mov eax, dword [esp + 0x68]
push eax
mov ecx, ebx
push 1
shr ecx, 2
push ecx
push esi
call fcn.1000b140
mov edx, dword [0x453e0d24]
add esp, 0x2c
mov dword [esp + 0x50], edx
call fcn.100293f0
test eax, eax
mov dword [0x453e0d24], eax
je 0x10018e4c
push eax
push 1
push ebx
push esi
call fcn.10029220
mov eax, dword [0x453e0d24]
push 0
push 0
push eax
call fcn.10028b60
neg edi
push edi
call fcn.100171c0
mov ecx, dword [0x453e0d24]
push ecx
call fcn.10028d60
add esp, 0x24
mov edx, dword [esp + 0x50]
push esi
mov dword [0x453e0d24], edx
call fcn.1002bb90
add esp, 4
mov ebx, dword [0x453c05a0]
xor esi, esi
test ebx, ebx
jbe 0x10018f00
lea edi, [esp + 0x198]
xor edx, edx
cmp ebx, 4
jl 0x10018ec0
fld qword [esp + esi*8 + 0xc0]
lea ecx, [ebx - 4]
shr ecx, 2
add ecx, 1
mov eax, edi
lea edx, [ecx*4]
fld st(0)
add eax, 0x20
sub ecx, 1
fmul qword [eax - 0x28]
fstp qword [eax - 0x28]
fld st(0)
fmul qword [eax - 0x20]
fstp qword [eax - 0x20]
fld st(0)
fmul qword [eax - 0x18]
fstp qword [eax - 0x18]
fld st(0)
fmul qword [eax - 0x10]
fstp qword [eax - 0x10]
jne 0x10018e96
fstp st(0)
cmp edx, ebx
jae 0x10018ef2
fld qword [esp + esi*8 + 0xc0]
lea eax, [edx + esi*4]
mov ecx, ebx
lea eax, [esp + eax*8 + 0x190]
sub ecx, edx
lea esp, [esp]
fld st(0)
add eax, 8
sub ecx, 1
fmul qword [eax - 8]
fstp qword [eax - 8]
jne 0x10018ee0
fstp st(0)
add esi, 1
add edi, 0x20
cmp esi, ebx
jb 0x10018e76
cmp dword [esp + 0x3c], 0
je 0x1001903c
test ebx, ebx
mov dword [esp + 0x18], 0
jbe 0x1001902c
lea eax, [esp + 0x198]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x130]
lea ecx, [ecx]
xor edi, edi
mov dword [esp + 0x2c], eax
jmp 0x10018f40
fld qword [0x452f84a8]
xor esi, esi
cmp ebx, 4
fstp qword [eax]
jl 0x10018fa9
fld qword [0x452f84a8]
mov eax, dword [esp + 0x30]
fld qword [esp + edi*8 + 0x60]
lea edx, [ebx - 4]
shr edx, 2
add edx, 1
lea ecx, [esp + edi*8 + 0x228]
lea esi, [edx*4]
fld qword [ecx + 0x30]
add eax, 0x20
fmul qword [eax - 0x10]
add ecx, 0x60
sub edx, 1
fld qword [ecx - 0x78]
fmul qword [eax - 0x28]
faddp st(1)
fld qword [ecx - 0x48]
fmul qword [eax - 0x18]
faddp st(1)
fld qword [ecx - 0x60]
fmul qword [eax - 0x20]
faddp st(1)
fmul st(1)
faddp st(2)
jne 0x10018f74
mov ecx, dword [esp + 0x2c]
fstp st(0)
fstp qword [ecx]
cmp esi, ebx
jae 0x10018ffd
fld qword [esp + edi*8 + 0x60]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
fstp qword [esp + 0x50]
fld qword [edx]
lea ecx, [esi + eax*4]
lea edx, [edi + esi*2]
add edx, esi
mov eax, ebx
lea ecx, [esp + ecx*8 + 0x190]
lea edx, [esp + edx*8 + 0x210]
sub eax, esi
lea esp, [esp]
fld qword [esp + 0x50]
add ecx, 8
fmul qword [ecx - 8]
add edx, 0x18
sub eax, 1
fmul qword [edx - 0x18]
faddp st(1)
jne 0x10018fe0
mov ecx, dword [esp + 0x2c]
fstp qword [ecx]
mov eax, dword [esp + 0x2c]
add edi, 1
add eax, 8
cmp edi, 3
mov dword [esp + 0x2c], eax
jl 0x10018f40
mov ecx, dword [esp + 0x18]
add dword [esp + 0x30], 0x20
add ecx, 1
cmp ecx, ebx
mov dword [esp + 0x18], ecx
jb 0x10018f30
lea edx, [esp + 0x130]
push edx
call fcn.1000d910
add esp, 4
fld qword [0x452f84a8]
fld qword [esp + 0xa0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x100190eb
xor eax, eax
cmp ebx, 4
mov dword [0x453c0acc], 0
jl 0x100190c7
lea ecx, [ebx - 3]
lea ebx, [ebx]
fld qword [0x452f84c0]
add eax, 4
cmp eax, ecx
fdiv qword [esp + eax*8 + 0x80]
fstp dword [eax*4 + 0x453c0ab0]
fld qword [0x452f84c0]
fdiv qword [esp + eax*8 + 0x88]
fstp dword [eax*4 + 0x453c0ab4]
fld qword [0x452f84c0]
fdiv qword [esp + eax*8 + 0x90]
fstp dword [eax*4 + 0x453c0ab8]
fld qword [0x452f84c0]
fdiv qword [esp + eax*8 + 0x98]
fstp dword [eax*4 + 0x453c0abc]
jl 0x10019070
cmp eax, ebx
jae 0x100190eb
jmp 0x100190d0
fld qword [0x452f84c0]
add eax, 1
cmp eax, ebx
fdiv qword [esp + eax*8 + 0x98]
fstp dword [eax*4 + 0x453c0abc]
jb 0x100190d0
cmp dword [esp + 0x3c], 0
jne 0x1001918c
xor eax, eax
cmp ebx, 4
jl 0x10019164
lea edx, [ebx - 3]
lea ecx, [esp + 0x1b8]
jmp 0x10019110
fld dword [eax*4 + 0x453e0af0]
add eax, 4
fdiv qword [ecx - 0x28]
add ecx, 0xa0
cmp eax, edx
fstp dword [eax*4 + 0x453e0ae0]
fld dword [eax*4 + 0x453e0ae4]
fdiv qword [ecx - 0xa0]
fstp dword [eax*4 + 0x453e0ae4]
fld dword [eax*4 + 0x453e0ae8]
fdiv qword [ecx - 0x78]
fstp dword [eax*4 + 0x453e0ae8]
fld dword [eax*4 + 0x453e0aec]
fdiv qword [ecx - 0x50]
fstp dword [eax*4 + 0x453e0aec]
jl 0x10019110
cmp eax, ebx
jae 0x1001918c
lea ecx, [eax + eax*4]
lea ecx, [esp + ecx*8 + 0x190]
fld dword [eax*4 + 0x453e0af0]
add eax, 1
fdiv qword [ecx]
add ecx, 0x28
cmp eax, ebx
fstp dword [eax*4 + 0x453e0aec]
jb 0x10019172
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret