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

Disassembly:
sub esp, 0x9c
mov eax, dword [esp + 0xa0]
push esi
mov esi, dword [0x1021c4b0]
push edi
push 0
push 0
push eax
mov dword [esp + 0x74], esi
call fcn.1003d5a0
mov edi, eax
add esi, 0x1a00
push edi
push esi
call fcn.1003f110
mov edx, dword [esi]
add esp, 0x14
mov ecx, dword [esi + 8]
lea ecx, [ecx + edx*8]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x9c], edx
cmp eax, ecx
je 0x10036917
cmp dword [eax], edi
jne 0x10036917
mov edi, dword [eax + 4]
test edi, edi
mov dword [esp + 0x44], edi
sete al
mov dword [esp + 0x88], edi
mov byte [esp + 0xb3], al
mov dword [esp + 0x64], edi
test edi, edi
jne 0x1003694b
jmp 0x10036927
mov dword [esp + 0x64], 0
mov byte [esp + 0xb3], 1
push edx
push dword [esp + 0xac]
call fcn.1003aa00
mov edx, dword [esp + 0xa4]
mov edi, eax
add esp, 8
mov dword [esp + 0x44], edi
mov dword [esp + 0x88], edi
mov ecx, edx
and ecx, 0xc0200
cmp ecx, 0xc0200
jne 0x10036965
or edx, 6
mov dword [esp + 0x9c], edx
mov esi, dword [esp + 0x68]
cmp dword [esi + 0x19f4], 0
mov ecx, dword [edi + 0x250]
mov dword [esp + 0x84], ecx
lea ecx, [esi + 0x19f4]
mov eax, dword [esi + 0x19b8]
mov dword [esp + 0x98], eax
mov dword [esp + 0x80], ecx
jne 0x100369aa
cmp byte [esi + 0x19c5], 0
mov byte [esp + 0xa2], 1
jne 0x100369b2
mov byte [esp + 0xa2], 0
mov dl, byte [esp + 0xa2]
dec eax
mov byte [edi + 0x86], dl
cmp dword [edi + 0x250], eax
mov edx, dword [edi + 0xa0]
setl al
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x9c]
mov byte [esp + 0x48], al
test edx, 0x4000000
je 0x10036a26
mov edx, dword [esp + 0x68]
mov eax, dword [esi + 0x1b34]
mov edx, dword [edx + 0x1b30]
lea esi, [eax + eax*8]
mov eax, dword [edi + 0x90]
cmp edi, dword [edx + esi*4 + 4]
setne cl
cmp eax, dword [edx + esi*4]
mov edx, dword [esp + 0x9c]
setne al
or cl, al
mov al, byte [esp + 0x48]
or al, cl
mov ecx, dword [esp + 0x80]
mov byte [esp + 0x48], al
test al, al
jne 0x10036a39
cmp dword [esp + 0x5c], 0
jg 0x10036a39
mov byte [edi + 0x84], al
jmp 0x10036a6b
mov eax, dword [esp + 0x64]
mov byte [edi + 0x84], 1
or dword [edi + 0xa4], 8
or dword [edi + 0xa8], 8
or dword [edi + 0xac], 8
mov dword [esp + 0x64], eax
mov al, byte [esp + 0xb3]
mov byte [esp + 0xb3], al
mov eax, dword [esp + 0x98]
mov esi, dword [esp + 0x68]
cmp dword [esp + 0x84], eax
je 0x10036ab3
mov dword [edi + 8], edx
mov dword [edi + 0x250], eax
xor eax, eax
fld qword [esi + 0x19b0]
fstp dword [edi + 0x254]
mov word [edi + 0x8c], ax
movzx eax, word [esi + 0x1a0c]
inc dword [esi + 0x1a0c]
mov word [edi + 0x8e], ax
jmp 0x10036abd
mov edx, dword [edi + 8]
mov dword [esp + 0x9c], edx
cmp dword [ecx], 0
jne 0x10036ac6
xor eax, eax
jmp 0x10036ad2
mov eax, dword [esi + 0x19fc]
mov esi, dword [ecx]
mov eax, dword [eax + esi*4 - 4]
mov esi, dword [esp + 0x84]
cmp esi, dword [esp + 0x98]
je 0x10036af4
and edx, 0x5000000
neg edx
sbb edx, edx
and edx, eax
mov dword [esp + 0x7c], edx
jmp 0x10036afe
mov eax, dword [edi + 0x2f8]
mov dword [esp + 0x7c], eax
cmp dword [edi + 0xc0], 0
lea eax, [edi + 0xc0]
mov esi, dword [esp + 0x68]
jne 0x10036b3d
cmp dword [eax + 4], 0
jne 0x10036b26
push 8
mov ecx, eax
call fcn.10049180
lea eax, [edi + 0xc0]
mov edx, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [edi + 4]
mov dword [ecx + edx*4], eax
lea ecx, [esi + 0x19f4]
inc dword [edi + 0xc0]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
cmp edx, eax
jne 0x10036b7a
inc edx
mov dword [esp + 0x80], edx
test eax, eax
je 0x10036b63
cdq
sub eax, edx
mov edx, dword [esp + 0x80]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x10036b68
mov eax, 8
cmp eax, edx
jg 0x10036b6e
mov eax, edx
push eax
call fcn.10049180
lea ecx, [esi + 0x19f4]
mov ecx, dword [ecx]
lea edx, [edi + 0x1e4]
mov eax, dword [esi + 0x19fc]
mov dword [eax + ecx*4], edi
inc dword [esi + 0x19f4]
mov dword [esi + 0x1a10], 0
mov ecx, dword [0x1021c4b0]
movzx eax, word [edi + 0xc0]
mov word [edx], ax
movzx eax, word [edi + 0x1d8]
mov word [edx + 2], ax
movzx eax, word [ecx + 0x1b34]
mov word [edx + 4], ax
movzx eax, word [ecx + 0x1b04]
mov word [edx + 6], ax
movzx eax, word [ecx + 0x1b10]
mov word [edx + 8], ax
movzx eax, word [ecx + 0x1b1c]
mov ecx, dword [esp + 0x9c]
mov word [edx + 0xa], ax
mov eax, ecx
and eax, 0x4000000
mov dword [esp + 0x60], eax
je 0x10036c90
mov eax, dword [esi + 0x1b34]
lea edx, [esi + 0x1b34]
mov dword [esp + 0x94], edx
lea ecx, [eax + eax*8]
mov eax, dword [esi + 0x1b30]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [edx]
lea esi, [eax + ecx*4]
mov ecx, dword [edx + 4]
mov dword [esp + 0x80], esi
cmp edi, ecx
jne 0x10036c5e
inc edi
test ecx, ecx
je 0x10036c44
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x94]
sar eax, 1
add eax, ecx
jmp 0x10036c49
mov eax, 8
cmp eax, edi
jg 0x10036c4f
mov eax, edi
push eax
mov ecx, edx
call fcn.10049210
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
lea ecx, [eax + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + ecx*4]
mov eax, dword [esp + 0x80]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x44]
inc dword [edx]
mov eax, dword [eax]
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x9c]
mov dword [edi + 0x90], eax
cmp dword [esp + 0x5c], 0
jle 0x10036ca9
test ecx, 0x1000000
jne 0x10036ca9
mov dword [edi + 0x30c], 0
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x98]
je 0x10036d37
mov edx, dword [esp + 0x7c]
mov dword [edi + 0x2f8], edx
mov dword [edi + 0x304], edi
mov dword [edi + 0x300], edi
mov dword [edi + 0x2fc], edi
test edx, edx
je 0x10036d13
mov eax, ecx
and eax, 0x3000000
cmp eax, 0x1000000
jne 0x10036cf7
mov eax, dword [edx + 0x2fc]
mov dword [edi + 0x2fc], eax
test ecx, 0x8000000
jne 0x10036d13
test ecx, 0x5000000
je 0x10036d13
mov eax, dword [edx + 0x300]
mov dword [edi + 0x300], eax
test dword [edi + 8], 0x800000
je 0x10036d37
mov ecx, edi
mov edi, edi
mov eax, dword [ecx + 0x2f8]
mov ecx, eax
mov dword [edi + 0x304], eax
test dword [ecx + 8], 0x800000
jne 0x10036d20
xor ah, ah
mov byte [esp + 0xa0], 0
test byte [esi + 0x1a90], 1
mov byte [esp + 0xa3], ah
mov byte [esp + 0xa1], ah
je 0x10036de3
mov ecx, dword [esi + 0x1a94]
test dword [edi + 0xa4], ecx
setne byte [esp + 0xa0]
test dword [edi + 0xa4], ecx
je 0x10036dd2
fld dword [esi + 0x1aac]
fld dword [esi + 0x1aa8]
fmul st(0), st(0)
fxch st(1)
fmul st(0), st(0)
faddp st(1)
fcomp dword [0x101aba38]
fnstsw ax
test ah, 0x41
jne 0x10036dd2
mov eax, dword [esi + 0x1aa0]
mov ecx, dword [esi + 0x1aa4]
mov dword [edi + 0xb0], eax
mov dword [edi + 0xb4], ecx
mov eax, dword [esi + 0x1aa8]
mov ecx, dword [esi + 0x1aac]
mov dword [edi + 0xb8], eax
mov dword [edi + 0xbc], ecx
and dword [edi + 0xa4], 0xfffffff1
jmp 0x10036de3
push ecx
lea eax, [esi + 0x1aa0]
push eax
push edi
call fcn.10046dc0
add esp, 0xc
test byte [esi + 0x1a90], 2
fldz
fst dword [esp + 0x90]
je 0x10036e61
mov ecx, dword [edi + 0xa8]
lea edx, [esi + 0x1ab0]
and ecx, dword [esi + 0x1a98]
je 0x10036e1c
fcom dword [edx]
fnstsw ax
test ah, 5
jp 0x10036e1c
mov byte [esp + 0xa3], 1
jmp 0x10036e29
xor ah, ah
mov byte [esp + 0xa3], ah
test ecx, ecx
je 0x10036e40
fcomp dword [esi + 0x1ab4]
fnstsw ax
test ah, 5
jp 0x10036e42
mov byte [esp + 0xa1], 1
jmp 0x10036e4a
fstp st(0)
mov byte [esp + 0xa1], 0
push dword [esi + 0x1a98]
push edx
push edi
call fcn.10046e90
fld dword [esp + 0x9c]
add esp, 0xc
test byte [esi + 0x1a90], 0x80
je 0x10036e9c
fld dword [esi + 0x1ac0]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x10036e81
fstp dword [edi + 0x64]
fst dword [edi + 0x6c]
jmp 0x10036e83
fstp st(0)
fld dword [esi + 0x1ac4]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x10036e9a
fstp dword [edi + 0x68]
fst dword [edi + 0x70]
jmp 0x10036e9c
fstp st(0)
test byte [esi + 0x1a90], 4
je 0x10036fb1
mov eax, dword [esi + 0x1ab8]
mov ecx, dword [esi + 0x1abc]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], ecx
fstp st(0)
test byte [esi + 0x1a90], 8
je 0x10036eeb
mov eax, dword [esi + 0x1a9c]
mov cl, byte [esi + 0x1ac8]
test eax, eax
je 0x10036ede
test dword [edi + 0xac], eax
je 0x10036eeb
and dword [edi + 0xac], 0xfffffff1
mov byte [edi + 0x81], cl
test byte [esi + 0x1a90], 0x20
je 0x10036efd
push edi
call fcn.1003c280
add esp, 4
cmp byte [edi + 0x84], 0
je 0x10036f1b
and dword [edi + 0xa4], 0xfffffff7
and dword [edi + 0xa8], 0xfffffff7
and dword [edi + 0xac], 0xfffffff7
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x98]
je 0x1003885c
mov eax, dword [esp + 0x9c]
fld dword [0x101abaf8]
and eax, 0x3000000
cmp dword [esp + 0xac], 0
mov byte [edi + 0x7e], 1
mov dword [esp + 0x84], eax
setne al
mov byte [edi + 0x87], al
lea eax, [edi + 0xc0]
fstp dword [edi + 0x230]
mov dword [edi + 0x234], 0xff7fffff
fld dword [0x101abae0]
fst dword [esp + 0x80]
fstp dword [edi + 0x238]
mov dword [edi + 0x23c], 0x7f7fffff
mov ecx, dword [eax + 4]
cmp ecx, 1
jge 0x10036fe7
test ecx, ecx
je 0x10036fd0
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
cmp eax, 1
jg 0x10036fd5
mov eax, 1
jmp 0x10036fd5
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x98]
je 0x10036ebb
fst dword [edi + 0x30]
fstp dword [edi + 0x34]
jmp 0x10036ebd
mov eax, 8
push eax
lea ecx, [edi + 0xc0]
call fcn.10049180
lea eax, [edi + 0xc0]
mov dword [eax], 1
cmp byte [edi + 0x334], 0
je 0x100370f0
mov byte [edi + 0x334], 0
mov ecx, dword [edi + 0x27c]
push dword [edi + 0x338]
add ecx, 0xc
call fcn.10049100
mov eax, dword [edi + 0x27c]
mov ecx, dword [edi + 0x33c]
add eax, 0x18
mov dword [esp + 0x94], eax
mov dword [esp + 0x8c], ecx
cmp ecx, dword [eax + 4]
jle 0x100370dc
mov eax, dword [0x1021c4b0]
test eax, eax
je 0x1003704a
inc dword [eax + 0x378]
push dword [0x1021c4b8]
lea eax, [ecx + ecx*4]
shl eax, 2
push eax
call dword [0x102170b8]
mov dword [esp + 0xa0], eax
add esp, 8
mov eax, dword [esp + 0x94]
mov edx, dword [eax + 8]
test edx, edx
je 0x100370c8
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
shl ecx, 2
push ecx
push edx
push dword [esp + 0xa0]
call fcn.10163cd0
mov eax, dword [esp + 0xa0]
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x100370ac
mov ecx, dword [0x1021c4b0]
test ecx, ecx
je 0x100370ac
dec dword [ecx + 0x378]
mov ecx, dword [0x1021c4b8]
test ecx, ecx
je 0x100370c8
push ecx
push edx
call dword [0x102170bc]
mov eax, dword [esp + 0x9c]
add esp, 8
mov ecx, dword [esp + 0x98]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 4], ecx
mov dword [edi + 0x33c], 0
mov dword [edi + 0x338], 0
cmp dword [esi + 0x1c50], 0
je 0x10037210
test dword [edi + 8], 0x80000
jne 0x10037210
cmp dword [esp + 0x64], 0
je 0x10037210
mov eax, dword [edi]
mov ecx, eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10037147
test dl, dl
je 0x10037143
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10037147
add eax, 2
add ecx, 2
test dl, dl
jne 0x10037127
xor eax, eax
jmp 0x1003714c
sbb eax, eax
or eax, 1
test eax, eax
je 0x10037210
mov ecx, dword [esp + 0xa8]
mov edx, dword [edi + 0x48]
mov dword [esp + 0x8c], edx
lea eax, [ecx + 1]
mov dword [esp + 0x94], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10037170
sub ecx, dword [esp + 0x94]
lea eax, [ecx + 1]
cmp edx, eax
mov dword [esp + 0x94], eax
mov edx, dword [esp + 0x98]
jae 0x100371f3
test edx, edx
je 0x100371a7
mov ecx, dword [0x1021c4b0]
test ecx, ecx
je 0x100371a7
dec dword [ecx + 0x378]
mov ecx, dword [0x1021c4b8]
test ecx, ecx
je 0x100371c3
push ecx
push edx
call dword [0x102170bc]
mov eax, dword [esp + 0x9c]
add esp, 8
mov ecx, dword [0x1021c4b0]
test ecx, ecx
je 0x100371d3
inc dword [ecx + 0x378]
push dword [0x1021c4b8]
push eax
call dword [0x102170b8]
mov edx, eax
add esp, 8
mov eax, dword [esp + 0x94]
mov dword [esp + 0x8c], eax
push eax
push dword [esp + 0xac]
push edx
call fcn.10163cd0
mov dword [edi], eax
add esp, 0xc
mov eax, dword [esp + 0x8c]
mov dword [edi + 0x48], eax
cmp byte [edi + 0x81], 0
je 0x1003723d
cmp byte [edi + 0x94], 0
jg 0x1003723d
cmp byte [edi + 0x95], 0
jg 0x1003723d
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
fld dword [esp + 0x90]
jmp 0x100372de
cmp byte [edi + 0x85], 0
je 0x10037267
cmp dword [edi + 0xa0], 0
jne 0x10037267
cmp dword [edi + 0x9c], 0
jle 0x10037267
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
fld dword [esp + 0x90]
jmp 0x100372de
fld dword [edi + 0x30]
fld dword [esp + 0x90]
fucom st(1)
fnstsw ax
test ah, 0x44
jp 0x1003728a
fstp st(1)
fld dword [edi + 0xe4]
fsub dword [edi + 0xdc]
fxch st(1)
fxch st(1)
call fcn.10162460
mov dword [esp + 0x8c], eax
fild dword [esp + 0x8c]
fld dword [edi + 0x34]
fucom st(2)
fnstsw ax
test ah, 0x44
jp 0x100372b9
fstp st(0)
fld dword [edi + 0xe8]
fsub dword [edi + 0xe0]
call fcn.10162460
mov dword [esp + 0x8c], eax
fild dword [esp + 0x8c]
fxch st(1)
fstp dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
fstp dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ecx
mov eax, dword [edi + 0x9c]
test eax, eax
jle 0x100372f5
dec eax
mov dword [edi + 0x9c], eax
mov eax, dword [edi + 0xa0]
test eax, eax
jle 0x10037306
dec eax
mov dword [edi + 0xa0], eax
cmp dword [esp + 0x64], 0
mov al, byte [esp + 0xa3]
mov cl, byte [esp + 0xa1]
jne 0x1003732d
test al, al
je 0x10037323
test cl, cl
jne 0x1003732d
mov dword [edi + 0xa0], 1
cmp byte [esp + 0x48], 0
mov edx, dword [esp + 0x9c]
je 0x1003736c
test edx, 0x6000000
je 0x1003736c
mov dword [edi + 0xa0], 1
test dl, 0x40
je 0x1003736c
test al, al
jne 0x1003735c
fst dword [edi + 0x20]
fst dword [edi + 0x18]
test cl, cl
jne 0x10037366
fst dword [edi + 0x24]
fst dword [edi + 0x1c]
fst dword [edi + 0x28]
fst dword [edi + 0x2c]
mov ecx, dword [0x1021c4b0]
mov dword [ecx + 0x1a10], edi
mov eax, dword [0x1021c4b0]
fld dword [eax + 0x18e0]
mov eax, dword [edi + 0x2f8]
fmul dword [edi + 0x274]
test eax, eax
je 0x10037399
fmul dword [eax + 0x274]
mov eax, edx
fst dword [ecx + 0x18f0]
and eax, 0x1000000
fstp dword [ecx + 0x18dc]
mov dword [esp + 0x98], eax
je 0x100373bd
fld dword [esi + 0x154c]
jmp 0x100373db
test edx, 0x6000000
je 0x100373d5
test edx, 0x8000000
jne 0x100373d5
fld dword [esi + 0x1554]
jmp 0x100373db
fld dword [esi + 0x1530]
fstp dword [edi + 0x44]
mov eax, dword [esi + 0x1524]
mov ecx, dword [esi + 0x1528]
mov dword [edi + 0x38], eax
mov eax, edx
and eax, 0x5010000
mov dword [edi + 0x3c], ecx
cmp eax, 0x1000000
jne 0x1003742e
fld dword [edi + 0x44]
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x1003742e
test edx, 0x400
je 0x10037422
fld dword [esi + 0x1528]
fxch st(1)
fstp dword [edi + 0x38]
fstp dword [edi + 0x3c]
jmp 0x10037430
fld st(0)
fxch st(1)
fstp dword [edi + 0x38]
fstp dword [edi + 0x3c]
jmp 0x10037430
fstp st(0)
test dl, 0x21
jne 0x100374ad
lea eax, [esp + 0x18]
mov ecx, edi
push eax
call fcn.100471c0
cmp dword [esi + 0x1a14], edi
jne 0x10037483
cmp dword [esi + 0x1a30], 0
jne 0x10037483
cmp dword [esi + 0x1a38], 0
jne 0x10037483
push 1
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.1003e6a0
add esp, 0xc
test al, al
je 0x10037483
cmp byte [esi + 0x3e5], 0
je 0x10037483
mov byte [edi + 0x82], 1
cmp byte [edi + 0x82], 0
je 0x100374b4
cmp byte [edi + 0x81], 0
push edi
sete al
mov byte [edi + 0x81], al
call fcn.1003f150
push edi
call fcn.1003c280
add esp, 8
jmp 0x100374b4
mov byte [edi + 0x81], 0
lea eax, [edi + 0x28]
mov byte [edi + 0x82], 0
push eax
lea eax, [esp + 0x70]
push edi
push eax
call fcn.10039a80
mov al, byte [esp + 0xbf]
add esp, 0xc
mov byte [esp + 0xa2], al
mov eax, dword [esp + 0x9c]
and eax, 0x40
mov dword [esp + 0x40], eax
je 0x1003752f
cmp byte [edi + 0x81], 0
jne 0x1003752f
cmp byte [esp + 0xa3], 0
jne 0x1003750d
fld dword [esp + 0x6c]
fstp dword [edi + 0x20]
mov byte [esp + 0xb3], 1
cmp byte [esp + 0xa1], 0
jne 0x100375f6
fld dword [esp + 0x70]
fstp dword [edi + 0x24]
mov byte [esp + 0xa2], 1
jmp 0x100375f6
mov al, byte [edi + 0x94]
test al, al
jg 0x10037546
cmp byte [edi + 0x95], 0
jle 0x100375f6
mov ah, byte [esp + 0xa3]
test ah, ah
jne 0x10037581
test al, al
jle 0x10037581
fld dword [esp + 0x6c]
cmp byte [edi + 0x97], ah
je 0x10037576
sub esp, 8
fstp dword [esp + 4]
fld dword [edi + 0x20]
fstp dword [esp]
call fcn.10034320
add esp, 8
fstp dword [edi + 0x20]
mov byte [esp + 0xb3], 1
cmp byte [esp + 0xa1], 0
jne 0x100375c1
cmp byte [edi + 0x95], 0
jle 0x100375c1
cmp byte [edi + 0x97], 0
fld dword [esp + 0x70]
je 0x100375b6
sub esp, 8
fstp dword [esp + 4]
fld dword [edi + 0x24]
fstp dword [esp]
call fcn.10034320
add esp, 8
fstp dword [edi + 0x24]
mov byte [esp + 0xa2], 1
cmp byte [edi + 0x81], 0
jne 0x100375f6
test dword [edi + 8], 0x100
mov ecx, dword [0x1021c4b0]
jne 0x100375f6
fld dword [esp + 0x90]
fcomp dword [ecx + 0x2dc4]
fnstsw ax
test ah, 1
jne 0x100375f6
fld dword [ecx + 0x1c]
fstp dword [ecx + 0x2dc4]
push dword [edi + 0x24]
lea eax, [esp + 0x78]
push dword [edi + 0x20]
push edi
push eax
call fcn.10039dc0
add esp, 0x10
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], eax
cmp byte [edi + 0x81], 0
je 0x10037649
cmp dword [esp + 0x98], 0
jne 0x10037649
lea eax, [esp + 0x18]
mov ecx, edi
push eax
call fcn.100471c0
fld dword [eax + 8]
fsub dword [eax]
fstp dword [esp + 0x74]
fld dword [eax + 0xc]
fsub dword [eax + 4]
fstp dword [esp + 0x78]
jmp 0x10037651
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
lea ecx, [esp + 0x74]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ecx
mov edx, dword [edi + 8]
mov eax, dword [0x1021c4b0]
test dl, 1
je 0x10037678
fld dword [esp + 0x90]
fld st(0)
jmp 0x100376a7
fld dword [eax + 0x18e0]
mov ecx, dword [edi + 0x2f8]
fmul dword [edi + 0x274]
test ecx, ecx
je 0x10037694
fmul dword [ecx + 0x274]
fld dword [eax + 0x155c]
fadd st(0), st(0)
faddp st(1)
fld dword [esp + 0x90]
fxch st(1)
test edx, 0x400
je 0x100376e1
mov ecx, dword [edi + 0x2f8]
fstp st(1)
fld dword [eax + 0x18e0]
fmul dword [edi + 0x274]
test ecx, ecx
je 0x100376cd
fmul dword [ecx + 0x274]
fld dword [eax + 0x155c]
fld dword [edi + 0x154]
faddp st(2)
fadd st(0), st(0)
faddp st(1)
jmp 0x100376e3
fxch st(1)
cmp byte [esp + 0x48], 0
faddp st(1)
mov edx, dword [esp + 0x60]
fstp dword [esp + 0x94]
je 0x10037730
mov dword [edi + 0x98], 0xffffffff
test edx, edx
je 0x10037730
cmp byte [esp + 0xa0], 0
jne 0x10037730
mov eax, dword [esi + 0x1b34]
lea ecx, [eax + eax*8]
mov eax, dword [esi + 0x1b3c]
mov edx, dword [eax + ecx*4 - 0x10]
mov eax, dword [eax + ecx*4 - 0xc]
mov dword [edi + 0x10], edx
mov edx, dword [esp + 0x60]
mov dword [edi + 0x14], eax
cmp dword [esp + 0x98], 0
je 0x10037791
mov ecx, dword [esp + 0x7c]
add ecx, 0x184
mov ax, word [ecx]
mov word [edi + 0x8c], ax
lea eax, [esp + 0x88]
push eax
call fcn.10048e30
mov edx, dword [esp + 0x60]
mov cl, byte [esp + 0xa0]
test edx, edx
jne 0x10037798
test cl, cl
jne 0x10037798
cmp dword [esp + 0x84], 0x3000000
je 0x10037798
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0xcc]
mov ecx, dword [ecx + 0xd0]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov cl, byte [esp + 0xa0]
fld dword [edi + 0xb0]
fld dword [esp + 0x80]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x100377f1
cmp dword [edi + 0xa0], 0
jne 0x100377f1
fld dword [edi + 0x20]
lea eax, [esp + 0x74]
fmul dword [edi + 0xb8]
push 0
push eax
push edi
fsubp st(1)
fstp dword [esp + 0x80]
fld dword [edi + 0x24]
fmul dword [edi + 0xbc]
fsubr dword [edi + 0xb4]
fstp dword [esp + 0x84]
call fcn.10046dc0
add esp, 0xc
jmp 0x10037841
mov eax, dword [esp + 0x9c]
fstp st(0)
test eax, 0x10000000
jne 0x10037828
test edx, edx
je 0x10037810
test cl, cl
jne 0x10037810
cmp dword [esp + 0x5c], 0
jg 0x10037828
test eax, 0x2000000
je 0x10037841
test cl, cl
jne 0x10037841
cmp dword [esp + 0x84], 0x3000000
je 0x10037841
lea eax, [esp + 0x74]
push edi
push eax
call fcn.1003b800
add esp, 8
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], eax
cmp byte [esp + 0xa0], 0
mov eax, dword [0x1021c4b0]
fld dword [eax + 0x10]
fst dword [esp + 0x88]
fld dword [eax + 0x14]
fst dword [esp + 0x8c]
fld dword [esp + 0x90]
fst dword [esp + 0x30]
fstp dword [esp + 0x34]
fxch st(1)
fstp dword [esp + 0x38]
fstp dword [esp + 0x3c]
jne 0x100379c1
cmp dword [esp + 0x98], 0
jne 0x100379c1
cmp byte [edi + 0x94], 0
jg 0x100379c1
cmp byte [edi + 0x95], 0
jg 0x100379c1
lea eax, [esi + 0x15c0]
push eax
lea eax, [esi + 0x15b8]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.1003d6e0
fld dword [esp + 0x9c]
add esp, 0xc
fld dword [esp + 0x88]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100379b9
fld dword [esp + 0x8c]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jne 0x100379bd
mov eax, dword [0x1021c4b0]
cmp byte [eax + 0xb8], 0
je 0x1003793c
test byte [edi + 8], 1
jne 0x1003793c
fld dword [eax + 0x18e0]
mov ecx, dword [edi + 0x2f8]
fmul dword [edi + 0x274]
test ecx, ecx
je 0x10037925
fmul dword [ecx + 0x274]
fld dword [eax + 0x155c]
fadd st(0), st(0)
faddp st(1)
fld dword [edi + 0x18]
fstp dword [esp + 0x74]
fstp dword [esp + 0x78]
jmp 0x1003794a
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
lea eax, [esp + 0x74]
fld dword [eax]
fld dword [eax + 4]
fld dword [esp + 0x28]
fld dword [esp + 0x2c]
fld st(3)
fadd dword [edi + 0x10]
fld dword [edi + 0x14]
fadd st(4)
fcom st(2)
fnstsw ax
test ah, 1
je 0x10037972
fstp st(0)
fld st(1)
fxch st(1)
fcom st(3)
fnstsw ax
test ah, 1
je 0x10037981
fstp st(0)
fld st(2)
fsubrp st(5)
fxch st(5)
fsubrp st(2)
fsubp st(5)
fxch st(3)
fsubrp st(1)
fcom st(3)
fnstsw ax
test ah, 0x41
je 0x1003799a
fstp st(3)
jmp 0x1003799c
fstp st(0)
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x100379af
fstp st(1)
fstp dword [edi + 0x10]
fstp dword [edi + 0x14]
jmp 0x100379c1
fstp st(0)
fstp dword [edi + 0x10]
fstp dword [edi + 0x14]
jmp 0x100379c1
fstp st(1)
jmp 0x100379bf
fstp st(0)
fstp st(0)
fld dword [edi + 0x10]
call fcn.10162460
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fld dword [edi + 0x14]
call fcn.10162460
cmp dword [esp + 0x98], 0
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fxch st(1)
fstp dword [edi + 0x10]
fstp dword [edi + 0x14]
je 0x10037a0e
fld dword [esi + 0x1548]
jmp 0x10037a2a
mov eax, ecx
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x10037a24
fld dword [esi + 0x1550]
jmp 0x10037a2a
fld dword [esi + 0x152c]
cmp byte [esp + 0x48], 0
fst dword [edi + 0x40]
mov byte [esp + 0xa3], 0
je 0x10037a5d
test ecx, 0x1000
jne 0x10037a5d
cmp dword [esp + 0x60], 0
jne 0x10037a55
cmp dword [esp + 0x84], 0
jne 0x10037a5d
mov byte [esp + 0xa3], 1
fld dword [esi + 0x18dc]
xor eax, eax
fld dword [0x101aba90]
cmp byte [esi + 0xb7], al
fmul st(1)
fxch st(1)
fmul dword [0x101aba58]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
setne al
faddp st(2)
mov dword [esp + 0x88], 0xffffffff
fld1
inc eax
fst dword [esp + 0x78]
mov dword [esp + 0x8c], eax
faddp st(2)
fcom st(1)
fnstsw ax
test ah, 1
je 0x10037ab8
fstp st(0)
jmp 0x10037aba
fstp st(1)
call fcn.10162460
cmp byte [edi + 0x81], 0
mov dword [esp + 0x5c], eax
fild dword [esp + 0x5c]
fstp dword [esp + 0x2c]
jne 0x10037b00
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x90]
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x78]
push eax
push edi
call fcn.10048110
add esp, 0x14
test al, al
je 0x10037b00
mov cl, 1
mov dl, cl
jmp 0x10037b0e
mov dl, byte [esp + 0xb3]
mov cl, byte [esp + 0xa2]
mov al, byte [esp + 0x88]
mov byte [edi + 0x88], al
cmp byte [edi + 0x81], 0
jne 0x10037c70
cmp dword [esp + 0x64], 0
lea eax, [esp + 0x6c]
fld dword [edi + 0x20]
fld dword [edi + 0x24]
fsub dword [esp + 0x94]
fld dword [edi + 0x208]
fsub dword [edi + 0x200]
fadd dword [edi + 0x74]
fld dword [edi + 0x20c]
fsub dword [edi + 0x204]
fadd dword [edi + 0x78]
jne 0x10037b6f
fld dword [esp + 0x90]
fst dword [esp + 0x6c]
fst dword [esp + 0x70]
jmp 0x10037b8e
fld dword [edi + 0x3c]
fld dword [edi + 0x38]
fadd st(0), st(0)
fadd dword [edi + 0x28]
fstp dword [esp + 0x6c]
fadd st(0), st(0)
fadd dword [edi + 0x2c]
fstp dword [esp + 0x70]
fld dword [esp + 0x90]
fld dword [eax]
fld dword [eax + 4]
test dl, dl
jne 0x10037bce
fstp st(6)
fxch st(3)
fxch st(5)
fxch st(3)
test cl, cl
jne 0x10037bd2
fstp st(4)
fxch st(1)
fxch st(3)
fxch st(1)
mov ecx, dword [esp + 0x9c]
test ecx, 0x4000
jne 0x10037bd8
fxch st(2)
fcom st(3)
fnstsw ax
test ah, 0x41
jne 0x10037bca
test cl, 8
je 0x10037bd6
xor al, al
jmp 0x10037bdc
fstp st(4)
jmp 0x10037b9f
fstp st(2)
jmp 0x10037bab
fxch st(2)
mov al, 1
fxch st(2)
mov byte [edi + 0x7d], al
lea edx, [esi + 0x1588]
test ecx, 0x8000
jne 0x10037c26
test al, al
je 0x10037bf5
fld dword [edx]
jmp 0x10037bf7
fld st(2)
fsubp st(5)
fxch st(1)
fcomp st(4)
fnstsw ax
fstp st(3)
test ah, 0x41
jne 0x10037c14
mov eax, ecx
and eax, 0x808
cmp eax, 0x800
je 0x10037c2a
mov byte [edi + 0x7c], 0
fstp st(1)
fstp st(1)
cmp byte [edi + 0x7c], 0
je 0x10037c52
fld dword [edx]
jmp 0x10037c54
fstp st(4)
fstp st(0)
mov byte [edi + 0x7c], 1
cmp byte [edi + 0x7d], 0
jne 0x10037c18
fxch st(2)
fcompp
fnstsw ax
test ah, 0x41
jne 0x10037c4b
test cl, 8
jne 0x10037c4b
mov al, 1
mov byte [edi + 0x7d], al
jmp 0x10037c1c
xor al, al
mov byte [edi + 0x7d], al
jmp 0x10037c1c
fld st(0)
cmp byte [edi + 0x7d], 0
je 0x10037c66
fstp st(1)
fld dword [edx]
fstp dword [edi + 0x74]
fstp dword [edi + 0x78]
jmp 0x10037c77
fxch st(1)
fstp dword [edi + 0x74]
fstp dword [edi + 0x78]
jmp 0x10037c77
mov ecx, dword [esp + 0x9c]
mov eax, ecx
and eax, 0x5000000
mov dword [esp + 0x64], eax
cmp eax, 0x1000000
jne 0x10037ca2
cmp dword [esp + 0x84], 0x3000000
je 0x10037ca2
mov ecx, dword [esp + 0x7c]
add ecx, 0x230
jmp 0x10037ca6
lea ecx, [esp + 0x30]
fld dword [edi + 0x10]
mov eax, dword [ecx]
fst dword [esp + 0xb0]
fld dword [edi + 0x14]
fst dword [esp + 0x88]
fxch st(1)
mov dword [esp + 0x4c], eax
fadd dword [edi + 0x18]
mov eax, dword [ecx + 4]
mov dword [esp + 0x50], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0xc]
mov ecx, edi
fstp dword [esp + 0x5c]
mov dword [esp + 0x58], eax
lea eax, [esp + 8]
fadd dword [edi + 0x1c]
push eax
fstp dword [esp + 0x64]
call fcn.100471c0
fld dword [esp + 0xb0]
lea ecx, [edi + 0x1f0]
fstp dword [ecx]
fld dword [esp + 0x88]
lea eax, [esp + 0x4c]
fstp dword [ecx + 4]
fld dword [esp + 0x5c]
fstp dword [ecx + 8]
fld dword [esp + 0x60]
push eax
fstp dword [ecx + 0xc]
call fcn.1003a380
fld dword [edi + 0x10]
fstp dword [edi + 0x200]
fld dword [esp + 0x94]
fadd dword [edi + 0x14]
mov eax, dword [esp + 0x9c]
and eax, 0x401
fstp dword [edi + 0x204]
fld dword [edi + 0x10]
fadd dword [edi + 0x18]
fsub dword [edi + 0x74]
fstp dword [edi + 0x208]
fld dword [edi + 0x14]
fadd dword [edi + 0x1c]
fsub dword [edi + 0x78]
fstp dword [edi + 0x20c]
cmp eax, 1
jne 0x10037d6f
fld dword [edi + 0x44]
jmp 0x10037d75
fld dword [esi + 0x1564]
fld dword [edi + 0x44]
fld dword [edi + 0x38]
fld dword [0x101a8790]
fmul st(1), st(0)
fxch st(1)
call fcn.10162460
mov dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
fcom st(2)
fnstsw ax
test ah, 1
je 0x10037da5
fstp st(0)
jmp 0x10037da7
fstp st(2)
fld dword [edi + 0x200]
lea esi, [edi + 0x210]
fadd st(1)
faddp st(2)
fxch st(1)
call fcn.10162460
mov dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
fstp dword [esi]
fld dword [edi + 0x204]
fadd st(1)
faddp st(2)
fxch st(1)
call fcn.10162460
mov dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
fstp dword [edi + 0x214]
fld dword [edi + 0x44]
fld dword [edi + 0x38]
fmul st(2)
call fcn.10162460
mov dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
fcom st(1)
fnstsw ax
test ah, 1
je 0x10037e1b
fstp st(0)
jmp 0x10037e1d
fstp st(1)
fld dword [edi + 0x208]
fadd st(2)
fsubrp st(1)
call fcn.10162460
mov dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
fstp dword [edi + 0x218]
fadd dword [edi + 0x20c]
fsub dword [edi + 0x44]
call fcn.10162460
push dword [esp + 0x58]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x50]
fild dword [esp + 0xb4]
fstp dword [edi + 0x21c]
mov edi, dword [esp + 0x58]
push edi
push eax
lea eax, [esp + 0x78]
push esi
push eax
call fcn.1003d1c0
push dword [esp + 0x6c]
push edi
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
lea eax, [esp + 0x68]
push eax
mov dword [esi], ecx
lea eax, [esp + 0x8c]
add esi, 8
push esi
push eax
call fcn.1003d1c0
mov edi, dword [esp + 0x6c]
add esp, 0x28
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
mov dword [esi], ecx
fld dword [edi + 0x18]
fld dword [esp + 0x90]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x10037ef2
test dword [esp + 0x9c], 0x2000040
jne 0x10037ef2
fxch st(1)
fmul dword [0x101aba88]
call fcn.10162460
mov esi, dword [esp + 0x68]
mov dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
jmp 0x10037f17
mov esi, dword [esp + 0x68]
fstp st(1)
fld dword [esi + 0x18dc]
fmul dword [0x101abaa8]
call fcn.10162460
mov dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
fstp dword [edi + 0x258]
fld dword [edi + 0x38]
fadd st(0), st(0)
fadd dword [edi + 0x28]
fld dword [edi + 0x208]
fsub dword [edi + 0x200]
fsubp st(1)
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x10037f40
fstp st(0)
fld st(0)
fstp dword [edi + 0x5c]
fld dword [edi + 0x3c]
fadd st(0), st(0)
fadd dword [edi + 0x2c]
fld dword [edi + 0x20c]
fsub dword [edi + 0x204]
fsubp st(1)
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x10037f66
fstp st(0)
jmp 0x10037f68
fstp st(1)
push 1
lea eax, [esp + 0x70]
push edi
push eax
fstp dword [edi + 0x60]
call fcn.100395d0
fld dword [esp + 0x8c]
add esp, 0xc
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi + 0x54], ecx
mov dword [edi + 0x58], eax
fst dword [edi + 0x64]
fstp dword [edi + 0x68]
mov ecx, dword [edi + 0x27c]
call fcn.1004bcf0
mov eax, dword [esi + 0x18d8]
mov ecx, dword [edi + 0x27c]
mov eax, dword [eax + 0x38]
push dword [eax + 8]
call fcn.1004e330
push 0
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.10043190
add esp, 0xc
test dword [esp + 0x9c], 0x8000000
je 0x10037fec
call fcn.1003d040
cmp edi, eax
jne 0x10037fec
cmp dword [edi + 0xa0], 0
jg 0x10037fec
mov cl, 1
jmp 0x10037fee
xor cl, cl
mov eax, dword [esi + 0x1c4c]
test eax, eax
je 0x10038004
cmp edi, dword [eax + 0x2fc]
jne 0x10038004
mov al, 1
jmp 0x10038006
xor al, al
mov byte [esp + 0xb3], al
test cl, cl
jne 0x10038019
test al, al
je 0x100380f5
fld dword [esi + 0x1cc0]
push ecx
movzx eax, cl
add eax, 0x2e
fstp dword [esp]
push eax
call fcn.1003c8b0
fld dword [esp + 0x98]
add esp, 8
push 0xf
push ecx
mov ecx, dword [edi + 0x27c]
fstp dword [esp]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.1004b050
cmp byte [esp + 0xb3], 0
je 0x100380f5
cmp edi, dword [esi + 0x1c4c]
jne 0x100380f5
fld dword [edi + 0x14]
lea eax, [esp + 0x30]
fld dword [edi + 0x18]
lea ecx, [esp + 0x4c]
fld dword [edi + 0x10]
fld dword [edi + 0x1c]
fld dword [esi + 0x18dc]
fld st(2)
fsub st(1)
push eax
fstp dword [esp + 0x50]
fld st(4)
fsub st(1)
fstp dword [esp + 0x54]
fxch st(2)
faddp st(3)
fxch st(2)
fadd st(1)
fstp dword [esp + 0x58]
fxch st(2)
faddp st(1)
faddp st(1)
fstp dword [esp + 0x5c]
call fcn.1003a8d0
test al, al
jne 0x100380f5
fld dword [esi + 0x1c58]
fmul dword [0x101aba5c]
push ecx
fstp dword [esp]
push 0x2d
call fcn.1003c8b0
fld dword [esi + 0x152c]
add esp, 8
push 0xf
push ecx
mov ecx, dword [edi + 0x27c]
fstp dword [esp]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.1004b050
cmp dword [esp + 0x64], 0x1000000
mov byte [esp + 0xb3], 0
jne 0x10038147
cmp dword [esp + 0x84], 0x3000000
je 0x10038147
mov edx, dword [edi + 0x27c]
mov eax, dword [edx]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
cmp dword [eax + ecx*8 - 0xc], 0
jne 0x10038147
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0x27c]
cmp dword [eax + 0x18], 0
jle 0x10038147
mov byte [esp + 0xb3], 1
mov dword [edi + 0x27c], eax
mov ecx, dword [esi + 0x1c48]
test ecx, ecx
jne 0x10038157
mov ecx, dword [esi + 0x1b40]
cmp byte [esp + 0xa3], 0
jne 0x1003817d
test ecx, ecx
je 0x10038173
mov eax, dword [edi + 0x300]
cmp eax, dword [ecx + 0x300]
je 0x1003817d
mov byte [esp + 0x80], 0
jmp 0x10038185
mov byte [esp + 0x80], 1
fld dword [esp + 0x2c]
lea eax, [esp + 0x18]
push ecx
fstp dword [esp]
push eax
push dword [esp + 0x94]
lea eax, [esp + 0x14]
push dword [esp + 0x8c]
push eax
push edi
call fcn.100442d0
add esp, 0x18
cmp byte [esp + 0xb3], 0
je 0x100381c4
lea eax, [edi + 0x280]
mov dword [edi + 0x27c], eax
cmp dword [esi + 0x1c4c], edi
jne 0x10038300
fld dword [edi + 0x40]
fst dword [esp + 0xb0]
fld dword [esi + 0x152c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jnp 0x100381f4
fstp dword [esp + 0xb0]
jmp 0x100381f6
fstp st(0)
fld dword [edi + 0x14]
fld dword [edi + 0x18]
fld dword [edi + 0x10]
fld dword [edi + 0x1c]
fld dword [esi + 0x18dc]
fld st(2)
fsub st(1)
fst dword [esp + 0x4c]
fld st(5)
fsub st(2)
fst dword [esp + 0x50]
fxch st(4)
faddp st(5)
fxch st(4)
fadd st(1)
fst dword [esp + 0x54]
fxch st(5)
faddp st(2)
fadd st(1), st(0)
fxch st(1)
fst dword [esp + 0x58]
fxch st(3)
fcom dword [esp + 0x30]
fnstsw ax
test ah, 0x41
jp 0x10038298
fxch st(2)
fcom dword [esp + 0x34]
fnstsw ax
test ah, 0x41
jp 0x100382a2
fxch st(4)
fcom dword [esp + 0x38]
fnstsw ax
test ah, 1
jne 0x100382ac
fxch st(3)
fcom dword [esp + 0x3c]
fnstsw ax
test ah, 1
jne 0x100382b6
fxch st(1)
fchs
fsub dword [esp + 0x78]
fsub st(2), st(0)
fxch st(2)
fstp dword [esp + 0x4c]
fxch st(3)
fsub st(1)
fstp dword [esp + 0x50]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x54]
faddp st(1)
fstp dword [esp + 0x58]
fld dword [edi + 0x40]
fstp dword [esp + 0xb0]
jmp 0x100382c0
fstp st(2)
fstp st(3)
fstp st(1)
fstp st(1)
jmp 0x100382be
fstp st(0)
fstp st(3)
fstp st(1)
fstp st(1)
jmp 0x100382be
fstp st(4)
fstp st(3)
fstp st(1)
fstp st(1)
jmp 0x100382be
fstp st(4)
fstp st(2)
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esi + 0x1c58]
push ecx
fstp dword [esp]
push 0x2d
call fcn.1003c8b0
fld dword [0x101a87a4]
add esp, 4
fstp dword [esp]
fld dword [esp + 0xb4]
push 0xffffffffffffffff
push ecx
mov ecx, dword [edi + 0x27c]
fstp dword [esp]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.1004af70
fld dword [edi + 0x30]
fld dword [esp + 0x90]
mov ecx, dword [esp + 0x9c]
fucom st(1)
fnstsw ax
mov edx, ecx
shr edx, 3
not dl
and dl, 1
test ah, 0x44
jp 0x10038354
fstp st(1)
mov eax, ecx
fld dword [edi + 0x38]
and eax, 0x808
fadd st(0), st(0)
fsubr dword [edi + 0x18]
cmp eax, 0x800
jne 0x10038341
fld dword [edi + 0x28]
jmp 0x10038343
fld st(1)
fcom st(1)
fnstsw ax
test ah, 1
je 0x10038350
fstp st(0)
jmp 0x10038352
fstp st(1)
fxch st(1)
fld dword [edi + 0x34]
fucom st(1)
fnstsw ax
test ah, 0x44
jnp 0x10038369
fld dword [esp + 0x94]
jmp 0x10038396
fstp st(0)
fld dword [edi + 0x3c]
fadd st(0), st(0)
fsubr dword [edi + 0x1c]
fld dword [esp + 0x94]
fsub st(1), st(0)
test dl, dl
je 0x10038385
fld dword [edi + 0x2c]
jmp 0x10038387
fld st(2)
fcom st(2)
fnstsw ax
test ah, 1
je 0x10038394
fstp st(0)
jmp 0x10038396
fstp st(2)
fld dword [edi + 0x38]
fld dword [edi + 0x44]
fcom st(1)
fnstsw ax
test ah, 0x41
jnp 0x100383a9
fstp st(1)
jmp 0x100383ab
fstp st(0)
fld dword [edi + 0x200]
fsub dword [edi + 0x54]
faddp st(1)
call fcn.10162460
mov dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
fstp dword [edi + 0x220]
fld dword [edi + 0x3c]
fld dword [edi + 0x44]
fcom st(1)
fnstsw ax
test ah, 0x41
jnp 0x100383e2
fstp st(1)
jmp 0x100383e4
fstp st(0)
fld dword [edi + 0x204]
fsub dword [edi + 0x58]
faddp st(1)
call fcn.10162460
mov dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
fstp dword [edi + 0x224]
fxch st(3)
fadd dword [edi + 0x220]
fstp dword [edi + 0x228]
fadd dword [edi + 0x224]
fstp dword [edi + 0x22c]
fld dword [edi + 0x10]
fsub dword [edi + 0x54]
fadd dword [edi + 0x38]
fstp dword [edi + 0x240]
fld dword [edi + 0x14]
fsub dword [edi + 0x58]
fadd dword [edi + 0x3c]
fadd st(2)
fstp dword [edi + 0x244]
fld dword [edi + 0x30]
fucom st(1)
fnstsw ax
test ah, 0x44
jp 0x10038458
fstp st(0)
fld dword [edi + 0x38]
fadd st(0), st(0)
fsubr dword [edi + 0x18]
fadd dword [edi + 0x240]
fstp dword [edi + 0x248]
fld dword [edi + 0x34]
fucom st(1)
fnstsw ax
test ah, 0x44
jp 0x1003847c
fstp st(0)
fld dword [edi + 0x3c]
fadd st(0), st(0)
fsubr dword [edi + 0x1c]
fsub st(2)
cmp dword [esp + 0x98], 0
fadd dword [edi + 0x244]
fstp dword [edi + 0x24c]
fld dword [edi + 0x38]
fsub dword [edi + 0x54]
fstp dword [edi + 0x104]
fst dword [edi + 0x10c]
fst dword [edi + 0x108]
fld dword [edi + 0x10]
fadd dword [edi + 0x104]
fxch st(2)
fadd dword [edi + 0x3c]
fsub dword [edi + 0x58]
fadd dword [edi + 0x14]
fxch st(2)
fst dword [edi + 0xdc]
fxch st(2)
fst dword [edi + 0xe0]
fxch st(2)
fst dword [edi + 0xcc]
fxch st(2)
fst dword [edi + 0xd0]
fxch st(2)
fstp dword [edi + 0xd4]
fxch st(1)
fstp dword [edi + 0xd8]
mov eax, dword [edi + 0xdc]
mov ecx, dword [edi + 0xe0]
mov dword [edi + 0xe4], eax
mov dword [edi + 0xe8], ecx
fst dword [edi + 0xf4]
fst dword [edi + 0xf8]
fst dword [edi + 0xec]
fst dword [edi + 0xf0]
fst dword [edi + 0x100]
fst dword [edi + 0xfc]
mov dword [edi + 0x138], 0
mov dword [edi + 0x13c], 1
mov eax, dword [edi + 0x144]
mov dword [edi + 0x140], eax
mov dword [edi + 0x144], 0
je 0x10038560
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0x148]
jmp 0x10038562
xor eax, eax
mov dword [edi + 0x148], eax
mov byte [edi + 0x14c], 0
fcomp dword [edi + 0x60]
fnstsw ax
test ah, 5
jp 0x1003857d
mov al, 1
jmp 0x1003857f
xor al, al
mov byte [edi + 0x14d], al
mov byte [edi + 0x14e], 0
fld dword [esi + 0x1ae8]
fld dword [edi + 0x38]
fld dword [esi + 0x1568]
fcom st(1)
fnstsw ax
test ah, 0x41
jnp 0x100385a8
fstp st(1)
jmp 0x100385aa
fstp st(0)
fcom st(1)
fnstsw ax
test ah, 1
je 0x100385b7
fstp st(0)
jmp 0x100385b9
fstp st(1)
push dword [esp + 0x48]
fstp dword [edi + 0x150]
fld dword [esi + 0x1aec]
fstp dword [edi + 0x154]
fld dword [esi + 0x1568]
push ecx
fstp dword [esp]
push 3
lea ecx, [edi + 0x158]
call fcn.10068e20
mov dword [edi + 0x17c], 0
lea eax, [edi + 0x184]
mov dword [edi + 0x180], 0
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x1003862c
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and ecx, eax
push ecx
lea ecx, [edi + 0x184]
call fcn.10049180
lea eax, [edi + 0x184]
mov dword [eax], 0
lea eax, [edi + 0x25c]
mov dword [edi + 0x190], eax
mov eax, dword [esp + 0x7c]
mov dword [edi + 0x194], 0
mov dword [edi + 0x198], 1
test eax, eax
je 0x10038662
mov eax, dword [eax + 0x198]
jmp 0x10038667
mov eax, 1
mov dword [edi + 0x19c], eax
lea eax, [edi + 0x1b4]
mov dword [edi + 0x1a4], 0xffffffff
mov dword [edi + 0x1a0], 0xffffffff
fld dword [edi + 0x258]
fstp dword [edi + 0x1ac]
fld dword [0x101aad24]
fstp dword [edi + 0x1b0]
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x100386cb
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and ecx, eax
push ecx
lea ecx, [edi + 0x1b4]
call fcn.10049180
lea eax, [edi + 0x1b4]
mov dword [eax], 0
lea eax, [edi + 0x1c0]
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x10038703
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and ecx, eax
push ecx
lea ecx, [edi + 0x1c0]
call fcn.10049180
lea eax, [edi + 0x1c0]
mov dword [eax], 0
lea eax, [edi + 0x1cc]
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x1003873b
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
setle cl
dec ecx
and ecx, eax
push ecx
lea ecx, [edi + 0x1cc]
call fcn.10049180
lea eax, [edi + 0x1cc]
push 0
lea ecx, [edi + 0x1d8]
mov dword [eax], 0
call fcn.100493a0
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x10038772
mov eax, dword [eax + 0x1a8]
lea edx, [edi + 0x1a8]
push edx
lea ecx, [edi + 0x1b4]
mov dword [edx], eax
call fcn.10048e30
jmp 0x1003877c
mov dword [edi + 0x1a8], 0
mov al, byte [edi + 0x94]
test al, al
jle 0x1003878e
dec al
mov byte [edi + 0x94], al
mov al, byte [edi + 0x95]
test al, al
jle 0x100387a0
dec al
mov byte [edi + 0x95], al
cmp byte [esp + 0xa3], 0
je 0x100387bb
push edi
call fcn.1003c280
push 0
push edi
call fcn.1003f600
add esp, 0xc
test byte [esp + 0x9c], 1
jne 0x100387e1
push dword [esp + 0xac]
lea eax, [esp + 0xc]
push dword [esp + 0xac]
push eax
push edi
call fcn.10045bb0
add esp, 0x10
mov eax, dword [edi + 0x4c]
mov dword [edi + 0x110], eax
lea eax, [esp + 0x10]
push 0
push eax
lea eax, [esp + 0x10]
push eax
call fcn.1003e6a0
xor ecx, ecx
test al, al
push 1
setne cl
mov dword [edi + 0x114], ecx
mov eax, dword [esp + 0x18]
mov dword [edi + 0x118], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x11c], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 0x120], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 0x124], eax
lea eax, [edi + 0x218]
push eax
lea eax, [edi + 0x210]
push eax
call fcn.10043190
mov eax, dword [esp + 0xb0]
add esp, 0x18
mov ecx, dword [esp + 0x40]
mov byte [edi + 0x80], 0
jmp 0x100388d3
mov ecx, dword [0x1021c4b0]
mov dword [ecx + 0x1a10], edi
mov eax, dword [0x1021c4b0]
fld dword [eax + 0x18e0]
mov eax, dword [edi + 0x2f8]
fmul dword [edi + 0x274]
test eax, eax
je 0x10038889
fmul dword [eax + 0x274]
mov eax, dword [esp + 0x9c]
mov esi, eax
and eax, 0x40
and esi, 0x1000000
mov dword [esp + 0x9c], eax
lea eax, [edi + 0x218]
push 1
push eax
lea eax, [edi + 0x210]
fst dword [ecx + 0x18f0]
push eax
fstp dword [ecx + 0x18dc]
call fcn.10043190
mov ecx, dword [esp + 0xa8]
mov eax, esi
mov esi, dword [esp + 0x74]
add esp, 0xc
inc word [edi + 0x8a]
mov dword [esi + 0x1a90], 0
test eax, eax
je 0x10038970
test ecx, ecx
jne 0x10038930
cmp byte [edi + 0x94], cl
jg 0x10038930
cmp byte [edi + 0x95], cl
jg 0x10038930
fld dword [edi + 0x1f8]
fcomp dword [edi + 0x1f0]
fnstsw ax
test ah, 0x41
jnp 0x10038926
fld dword [edi + 0x1fc]
fcomp dword [edi + 0x1f4]
fnstsw ax
test ah, 0x41
jp 0x10038930
mov dword [edi + 0x9c], 1
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x10038970
cmp byte [eax + 0x81], 0
jne 0x1003894a
cmp dword [eax + 0x9c], 0
jle 0x10038954
mov dword [edi + 0x9c], 1
cmp byte [eax + 0x81], 0
jne 0x10038966
cmp dword [eax + 0xa0], 0
jle 0x10038970
mov dword [edi + 0xa0], 1
fld dword [esp + 0x90]
fcomp dword [esi + 0x1520]
fnstsw ax
test ah, 1
jne 0x1003898e
mov dword [edi + 0x9c], 1
cmp dword [edi + 0x9c], 0
jg 0x100389a4
cmp dword [edi + 0xa0], 0
jg 0x100389a4
xor cl, cl
jmp 0x100389a6
mov cl, 1
xor al, al
mov byte [edi + 0x85], cl
cmp byte [edi + 0x81], al
jne 0x100389bf
cmp byte [edi + 0x7e], al
je 0x100389bf
test cl, cl
je 0x100389dc
cmp byte [edi + 0x94], 0
jg 0x100389dc
cmp byte [edi + 0x95], 0
jg 0x100389dc
cmp dword [edi + 0xa0], 0
jg 0x100389dc
mov al, 1
mov byte [edi + 0x83], al
xor al, 1
pop edi
pop esi
add esp, 0x9c
ret