Function at 0x10097070
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x61c
mov eax, dword [0x100a20a4]
xor eax, esp
mov dword [esp + 0x618], eax
push ebx
mov ebx, ecx
mov dword [esp + 0x60], 0
push esi
push edi
mov dword [esp + 0x44], ebx
mov eax, dword [ebx + 0x12fcc]
mov ecx, dword [ebx + 0x13278]
mov edx, dword [ebx + 0x12fa4]
mov esi, dword [ebx + 0x12fbc]
mov edi, dword [ebx + 0x12fc0]
mov dword [esp + 0xbc], eax
mov eax, dword [ebx + 0x12fc8]
add ecx, eax
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx + 0x1327c]
add ecx, eax
mov dword [esp + 0x84], edx
mov edx, dword [ebx + 0x13284]
add edx, eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 0x13280]
add ecx, eax
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0xac], edx
mov edx, dword [ebx + 0x130a8]
mov dword [esp + 0x88], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0xa4], eax
fld dword [edx + 0x268]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov eax, dword [ebx + 0x12fe0]
mov dword [esp + 0x38], ecx
mov dword [esp + 0xa8], ecx
mov ecx, dword [ebx + 0x12fdc]
mov dword [esp + 0x6c], eax
mov eax, ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x158], eax
fstp dword [esp + 0xc]
test esi, 0x8000000
jne 0x100971ea
mov eax, dword [ebx + 0x13268]
lea esi, [ecx + 0xc]
add eax, ecx
mov dword [esp + 0x60], esi
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x1326c]
add eax, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x150], eax
mov eax, dword [ebx + 0x13270]
add eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x154], eax
mov eax, dword [ebx + 0x13274]
add eax, ecx
cmp dword [ebx + 0x12fd0], 0
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x1325c]
lea eax, [esi + eax*4]
mov dword [esp + 0x5c], eax
je 0x10097282
mov eax, dword [ebx + 0x13264]
add eax, ecx
mov dword [esp + 0x158], eax
jmp 0x1009727e
mov eax, dword [ebx + 0x12fe4]
xor ecx, ecx
mov esi, dword [ebx + 0x12fd0]
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 0x12ff4]
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x13054]
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x1305c]
mov dword [esp + 0x94], eax
mov eax, dword [ebx + 0x13004]
mov dword [esp + 0x48], eax
mov dword [esp + 0x150], eax
mov eax, dword [ebx + 0x1300c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x154], eax
mov eax, dword [ebx + 0x12ffc]
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x12fec]
mov dword [esp + 0x5c], eax
test esi, esi
je 0x10097282
lea edx, [ebx + 0x13014]
mov eax, dword [edx]
lea edx, [edx + 8]
mov dword [esp + ecx*4 + 0x158], eax
inc ecx
cmp ecx, esi
jb 0x10097260
mov eax, dword [esp + 0x158]
mov edx, dword [ebx + 0x130a8]
mov dword [esp + 0x3c], eax
test dword [esp + 0x70], 0x2000
jne 0x100972a0
lea eax, [ebx + 0x11a88]
mov dword [ebx + 0x12ff0], 0
mov dword [esp + 0x5c], eax
mov ecx, dword [ebx + 0x12fa8]
mov esi, ecx
fldz
mov dword [ebx + 0x11ac8], 0xffffffff
mov dword [ebx + 0x11af8], 0
mov dword [ebx + 0x11b50], 0
fst dword [esp + 0x74]
test ecx, 0x400
je 0x1009744f
test dword [esp + 0x70], 0x10000000
mov eax, dword [ebx + 0x11aac]
mov dword [ebx + 0x11a9c], eax
mov eax, dword [ebx + 0x11ab0]
fst dword [ebx + 0x11abc]
mov dword [ebx + 0x11aa0], eax
mov eax, dword [ebx + 0x11ab4]
fst dword [ebx + 0x11ac0]
fstp dword [ebx + 0x11ac4]
mov dword [ebx + 0x11aa4], eax
je 0x10097451
mov eax, dword [ebx + 0x12fb8]
test al, 0x40
je 0x100973b6
cmp dword [ebx + 0x11b90], 0
jne 0x1009734d
or esi, 0x2200
lea ecx, [esp + 0x150]
mov dword [ebx + 0x12fa8], esi
mov dword [esp + 0xa4], ecx
cmp dword [ebx + 0x11b88], 0
jne 0x10097370
or esi, 0x4200
lea ecx, [esp + 0x150]
mov dword [ebx + 0x12fa8], esi
mov dword [esp + 0x8c], ecx
cmp dword [ebx + 0x11b84], 0
jne 0x10097393
or esi, 0x10200
lea ecx, [esp + 0x150]
mov dword [ebx + 0x12fa8], esi
mov dword [esp + 0xa0], ecx
cmp dword [ebx + 0x11b8c], 0
jne 0x100973b6
or esi, 0x8200
lea ecx, [esp + 0x150]
mov dword [ebx + 0x12fa8], esi
mov dword [esp + 0x90], ecx
test al, al
jns 0x10097451
cmp dword [ebx + 0x11b90], 1
mov eax, esi
jne 0x100973e2
or eax, 0x2200
lea ecx, [esp + 0x154]
mov dword [ebx + 0x12fa8], eax
mov dword [esp + 0xa4], ecx
cmp dword [ebx + 0x11b88], 1
mov esi, eax
jne 0x10097407
or esi, 0x4200
lea eax, [esp + 0x154]
mov dword [ebx + 0x12fa8], esi
mov dword [esp + 0x8c], eax
cmp dword [ebx + 0x11b84], 1
jne 0x1009742a
or esi, 0x10200
lea eax, [esp + 0x154]
mov dword [ebx + 0x12fa8], esi
mov dword [esp + 0xa0], eax
cmp dword [ebx + 0x11b8c], 1
jne 0x10097451
or esi, 0x8200
lea eax, [esp + 0x154]
mov dword [ebx + 0x12fa8], esi
mov dword [esp + 0x90], eax
jmp 0x10097451
fstp st(0)
cmp dword [edx + 0x274], 0
je 0x10097480
fld dword [edx + 0x278]
fstp dword [esp + 0x10]
fld dword [edx + 0x27c]
fstp dword [esp + 0x1c]
fld dword [edx + 0x280]
fstp dword [esp + 0x24]
mov dword [esp + 0x68], 1
mov eax, dword [esp + 0x6c]
and esi, 0x10000000
neg esi
mov ecx, 0x10096850
sbb esi, esi
lea edx, [eax + eax*4]
not esi
lea eax, [edi + edi*4]
and esi, dword [ebx + 0x12fd4]
add eax, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x7c], eax
add edx, edx
mov eax, dword [ebx + 0x12ff8]
mov dword [esp + 0x50], edx
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [ebx + 0x12fe8]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0xd8], eax
mov eax, dword [ebx + 0x12ff0]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x70]
and eax, 0x80000
je 0x100974f7
mov ecx, 0x10096d40
neg eax
mov dword [esp + 0xb0], ecx
sbb eax, eax
neg eax
dec eax
mov dword [ebx + 0x11c1c], eax
mov dword [ebx + 0x11c18], 0
mov eax, dword [ebx + 0x12fe0]
mov ecx, dword [ebx + 0x12fa8]
mov dword [esp + 0xb4], eax
mov eax, dword [ebx + 0x12ff8]
mov dword [esp + 0xb8], eax
test cl, 0xc0
je 0x10097569
mov eax, dword [ebx + 0x130a8]
fld dword [eax + 0x2a8]
fstp dword [ebx + 0x13254]
test cl, 0x40
je 0x1009755b
mov dword [ebx + 0x12fe0], 0xc
test cl, cl
jns 0x10097569
mov dword [ebx + 0x12ff8], 0xc
fld dword [esp + 0xc]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
fstp dword [esp + 0xc4]
fld1
fstp qword [esp + 0xe0]
fld qword [0x1000b700]
fstp qword [esp + 0xe8]
fld dword [esp + 0x10]
fstp dword [esp + 0xcc]
fld dword [esp + 0x1c]
fstp dword [esp + 0xc8]
fld dword [esp + 0x24]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x84]
fstp dword [esp + 0xd0]
mov dword [esp + 0x98], ecx
cmp eax, 0xa
jae 0x100975d8
mov edx, eax
mov dword [esp + 0x80], eax
jmp 0x100975e4
mov edx, 0xa
mov dword [esp + 0x80], edx
mov eax, dword [ebx + 0x12fa8]
test al, 0x40
je 0x10097664
test edx, edx
je 0x10097659
mov eax, dword [esp + 0x88]
lea esi, [esp + 0x530]
mov edi, edx
fld dword [ebx + 0x13254]
mov edx, eax
push esi
push ecx
mov ecx, dword [esp + 0xa0]
fstp dword [esp]
call fcn.10098fe0
mov eax, dword [esp + 0xbc]
add esp, 8
add dword [esp + 0x98], eax
add esi, 0xc
mov eax, dword [esp + 0x88]
add eax, dword [ebx + 0x13058]
mov dword [esp + 0x88], eax
sub edi, 1
jne 0x10097602
mov edi, dword [esp + 0x30]
mov eax, dword [ebx + 0x12fa8]
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x530]
mov dword [esp + 0x54], ecx
test al, al
jns 0x100976e0
test edx, edx
je 0x100976d5
mov eax, dword [esp + 0x94]
lea esi, [esp + 0x5a8]
mov edi, edx
lea esp, [esp]
fld dword [ebx + 0x13254]
mov edx, eax
push esi
push ecx
mov ecx, dword [esp + 0xa4]
fstp dword [esp]
call fcn.10098fe0
mov eax, dword [esp + 0xc0]
add esp, 8
add dword [esp + 0x9c], eax
add esi, 0xc
mov eax, dword [esp + 0x94]
add eax, dword [ebx + 0x13060]
mov dword [esp + 0x94], eax
sub edi, 1
jne 0x10097680
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x80]
lea eax, [esp + 0x5a8]
mov dword [esp + 0x58], eax
mov esi, dword [esp + 0xb0]
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0xc4]
push eax
push dword [esp + 0x64]
push dword [esp + 0x6c]
push ecx
push edx
push ebx
mov ecx, esi
call dword [0x100a8504]
call esi
mov esi, dword [ebx + 0x12fa8]
add esp, 0x1c
mov dword [esp + 0x14], eax
test esi, 0x500
jne 0x10097736
mov ecx, dword [esp + 0x68]
test ecx, ecx
jne 0x10097736
mov eax, dword [ebx + 0x12fbc]
test eax, 0x60000000
je 0x1009775e
push 0x2a8
lea eax, [esp + 0x28c]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [ebx + 0x12fbc]
add esp, 0xc
mov ecx, dword [esp + 0x68]
test eax, 0x60000000
jne 0x10097766
test ecx, ecx
je 0x10097abf
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x10], eax
test eax, eax
je 0x10097abf
mov edi, dword [esp + 0x18]
lea esi, [esp + 0x2b4]
mov eax, dword [ebx + 0x12fbc]
test eax, 0x20000000
jne 0x100977b9
cmp dword [esp + 0x68], 0
je 0x10097915
cmp dword [ebx + 0x13258], 0
jne 0x1009783f
fld dword [ebx + 0x8290]
fmul dword [edi + 4]
fld dword [ebx + 0x8280]
fmul dword [edi]
faddp st(1)
fld dword [ebx + 0x82a0]
fmul dword [edi + 8]
faddp st(1)
fadd dword [ebx + 0x82b0]
fstp dword [esi - 4]
fld dword [ebx + 0x8294]
fmul dword [edi + 4]
fld dword [ebx + 0x8284]
fmul dword [edi]
faddp st(1)
fld dword [ebx + 0x82a4]
fmul dword [edi + 8]
faddp st(1)
fadd dword [ebx + 0x82b4]
fstp dword [esi]
fld dword [ebx + 0x8298]
fmul dword [edi + 4]
fld dword [ebx + 0x8288]
fmul dword [edi]
faddp st(1)
fld dword [ebx + 0x82a8]
fmul dword [edi + 8]
faddp st(1)
fadd dword [ebx + 0x82b8]
fstp dword [esi + 4]
jmp 0x10097911
fld dword [esp + 0x74]
xor edi, edi
mov eax, dword [ebx + 0x1325c]
fst dword [esp + 0x1c]
fst dword [esi - 4]
fst dword [esi]
fstp dword [esi + 4]
fld dword [esp + 0x1c]
cmp edi, eax
jne 0x1009786c
fsubr qword [esp + 0xe0]
fstp dword [esp + 0x24]
jmp 0x1009787b
fld dword [edx + edi*4]
fstp dword [esp + 0x24]
fadd dword [esp + 0x24]
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, ebx
movzx eax, byte [edi + eax]
push eax
call fcn.10099090
mov ecx, dword [esp + 0x18]
inc edi
fld dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
fld dword [eax + 0x10]
fmul dword [ecx + 4]
fld dword [eax]
fmul dword [ecx]
faddp st(1)
fld dword [eax + 0x20]
fmul dword [ecx + 8]
faddp st(1)
fadd dword [eax + 0x30]
fmul st(1)
fadd dword [esi - 4]
fstp dword [esi - 4]
fld dword [eax + 0x14]
fmul dword [ecx + 4]
fld dword [eax + 4]
fmul dword [ecx]
faddp st(1)
fld dword [eax + 0x24]
fmul dword [ecx + 8]
faddp st(1)
fadd dword [eax + 0x34]
fmul st(1)
fadd dword [esi]
fstp dword [esi]
fld dword [eax + 0x18]
fmul dword [ecx + 4]
fld dword [eax + 8]
fmul dword [ecx]
faddp st(1)
fld dword [eax + 0x28]
fmul dword [ecx + 8]
faddp st(1)
fadd dword [eax + 0x38]
mov eax, dword [ebx + 0x1325c]
fmulp st(1)
fadd dword [esi + 4]
fstp dword [esi + 4]
cmp edi, eax
jbe 0x10097857
mov eax, dword [ebx + 0x12fbc]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
or dword [esi + 0x14], 1
test eax, 0x40000000
je 0x10097a85
cmp dword [ebx + 0x13258], 0
jne 0x10097993
fld dword [ebx + 0xc284]
lea edx, [esi + 8]
fmul dword [ecx + 4]
fld dword [ebx + 0xc280]
fmul dword [ecx]
faddp st(1)
fld dword [ebx + 0xc288]
fmul dword [ecx + 8]
faddp st(1)
fstp dword [edx]
fld dword [ebx + 0xc294]
fmul dword [ecx + 4]
fld dword [ebx + 0xc290]
fmul dword [ecx]
faddp st(1)
fld dword [ebx + 0xc298]
fmul dword [ecx + 8]
faddp st(1)
fstp dword [esi + 0xc]
fld dword [ebx + 0xc2a4]
fmul dword [ecx + 4]
fld dword [ebx + 0xc2a0]
fmul dword [ecx]
faddp st(1)
fld dword [ebx + 0xc2a8]
fmul dword [ecx + 8]
faddp st(1)
fstp dword [esi + 0x10]
jmp 0x10097a5c
fld dword [esp + 0x74]
xor edi, edi
mov eax, dword [ebx + 0x1325c]
fst dword [esp + 0x1c]
fst dword [esi + 8]
fst dword [esi + 0xc]
fstp dword [esi + 0x10]
lea esp, [esp]
fld dword [esp + 0x1c]
cmp edi, eax
jne 0x100979c5
fsubr qword [esp + 0xe0]
fstp dword [esp + 0x24]
jmp 0x100979d8
mov eax, dword [esp + 0x2c]
fld dword [eax + edi*4]
fstp dword [esp + 0x24]
fadd dword [esp + 0x24]
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, ebx
movzx eax, byte [edi + eax]
push eax
call fcn.10099020
mov ecx, dword [esp + 0x20]
lea edx, [esi + 8]
fld dword [esp + 0x24]
inc edi
fld dword [eax + 4]
fmul dword [ecx + 4]
fld dword [ecx]
fmul dword [eax]
faddp st(1)
fld dword [eax + 8]
fmul dword [ecx + 8]
faddp st(1)
fmul st(1)
fadd dword [edx]
fstp dword [edx]
fld dword [eax + 0x10]
fmul dword [ecx]
fld dword [eax + 0x14]
fmul dword [ecx + 4]
faddp st(1)
fld dword [eax + 0x18]
fmul dword [ecx + 8]
faddp st(1)
fmul st(1)
fadd dword [esi + 0xc]
fstp dword [esi + 0xc]
fld dword [eax + 0x20]
fmul dword [ecx]
fld dword [eax + 0x24]
fmul dword [ecx + 4]
faddp st(1)
fld dword [eax + 0x28]
fmul dword [ecx + 8]
mov eax, dword [ebx + 0x1325c]
faddp st(1)
fmulp st(1)
fadd dword [esi + 0x10]
fstp dword [esi + 0x10]
cmp edi, eax
jbe 0x100979b0
mov eax, dword [ebx + 0x12fbc]
test eax, 0x2000000
je 0x10097a6f
lea ecx, [esi + 8]
call fcn.1009be18
mov ecx, dword [esp + 0x20]
or dword [esi + 0x14], 2
add ecx, dword [ebx + 0x12ff8]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x28]
add esi, 0x44
add edi, dword [ebx + 0x12fe0]
add edx, dword [ebx + 0x12fe8]
add eax, dword [ebx + 0x12ff0]
sub dword [esp + 0x10], 1
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
jne 0x100977a1
mov esi, dword [ebx + 0x12fa8]
mov edi, dword [esp + 0x30]
test esi, 0x400
je 0x100982ac
mov eax, dword [ebx + 0x11b58]
mov dword [esp + 0xc], eax
test eax, eax
je 0x10097b74
push dword [esp + 0x40]
mov esi, dword [eax + 0xbc]
lea ecx, [esp + 0x28c]
push dword [esp + 0x4c]
push dword [esp + 0x60]
push dword [esp + 0x68]
push dword [esp + 0x70]
push dword [esp + 0x68]
push eax
push ecx
push dword [esp + 0x34]
mov ecx, esi
push ebx
call dword [0x100a8504]
call esi
mov eax, dword [esp + 0x34]
add esp, 0x28
mov eax, dword [eax + 0x58]
mov dword [esp + 0xc], eax
test eax, eax
je 0x10097b74
mov edi, eax
jmp 0x10097b30
push dword [esp + 0x40]
mov esi, dword [edi + 0xc0]
lea eax, [esp + 0x28c]
push dword [esp + 0x4c]
mov ecx, esi
push dword [esp + 0x60]
push dword [esp + 0x68]
push dword [esp + 0x70]
push dword [esp + 0x68]
push edi
push eax
push dword [esp + 0x34]
push ebx
call dword [0x100a8504]
call esi
mov edi, dword [edi + 0x58]
add esp, 0x28
test edi, edi
jne 0x10097b30
mov edi, dword [esp + 0x30]
test dword [ebx + 0x12fa8], 0x200
mov edx, dword [esp + 0x14]
je 0x1009808b
mov dword [esp + 0x20], edx
test edx, edx
je 0x10098371
lea edx, [esp + 0x29c]
jmp 0x10097ba0
mov esi, dword [ebx + 0x12fa8]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x24], eax
test esi, 0x12000
je 0x10097dbf
test al, 8
jne 0x10097bc9
fld dword [esp + 0x74]
fst dword [edx - 4]
fst dword [edx]
fstp dword [edx + 4]
test esi, 0x10000
je 0x10097c89
mov eax, dword [esp + 0xa0]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
test eax, eax
jns 0x10097bfa
fadd dword [0x1000b754]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, ecx
fmul dword [ebx + 0x11aec]
shr eax, 8
movzx eax, al
fadd dword [edx - 4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov dword [esp + 0xc], eax
fst dword [edx - 4]
fild dword [esp + 0xc]
test eax, eax
jns 0x10097c30
fadd dword [0x1000b754]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fmul dword [ebx + 0x11af0]
movzx eax, cl
fadd dword [edx]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov dword [esp + 0xc], eax
fst dword [edx]
fild dword [esp + 0xc]
test eax, eax
jns 0x10097c5f
fadd dword [0x1000b754]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x154]
fmul dword [ebx + 0x11af4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], ecx
jmp 0x10097cc7
fld dword [ebx + 0x11b1c]
fmul dword [ebx + 0x11adc]
fadd dword [edx - 4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [edx - 4]
fld dword [ebx + 0x11b20]
fmul dword [ebx + 0x11ae0]
fadd dword [edx]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [edx]
fld dword [ebx + 0x11b24]
fmul dword [ebx + 0x11ae4]
fadd dword [edx + 4]
fxch st(2)
fstp dword [esp + 0x10]
fstp dword [esp + 0x1c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [edx + 4]
fld dword [esp + 0x10]
fld dword [esp + 0x1c]
test esi, 0x2000
je 0x10097d82
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
test eax, eax
jns 0x10097d18
fadd dword [0x1000b754]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
faddp st(2)
movzx eax, cl
mov dword [esp + 0xc], eax
fxch st(1)
fstp dword [edx - 4]
fild dword [esp + 0xc]
test eax, eax
jns 0x10097d3c
fadd dword [0x1000b754]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
shr ecx, 8
faddp st(2)
movzx eax, cl
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
test eax, eax
jns 0x10097d5e
fadd dword [0x1000b754]
fstp dword [esp + 0xc]
fadd dword [esp + 0xc]
mov eax, dword [esp + 0x154]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
jmp 0x10097dae
fld dword [ebx + 0x11b3c]
fld qword [esp + 0xe8]
fmul st(1), st(0)
fxch st(1)
faddp st(3)
fxch st(2)
fstp dword [edx - 4]
fld dword [ebx + 0x11b44]
fmul st(2)
faddp st(3)
fld dword [ebx + 0x11b40]
fmulp st(2)
faddp st(1)
fstp dword [edx]
mov esi, dword [ebx + 0x12fa8]
or eax, 8
fstp dword [edx + 4]
mov dword [edx + 0x2c], eax
test al, 8
je 0x10097eca
fld dword [edx - 4]
fstp dword [esp + 0x10]
test esi, 0x12000
jne 0x10097e03
fld dword [ebx + 0x11aac]
fadd dword [esp + 0x10]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [edx - 4]
fld dword [ebx + 0x11ab0]
fadd dword [edx]
fstp dword [edx]
fld dword [ebx + 0x11ab4]
fadd dword [edx + 4]
fstp dword [edx + 4]
jmp 0x10097e07
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xf0]
fld dword [edx]
mov ecx, dword [esp + 0xf0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xf8]
fld dword [edx + 4]
mov eax, dword [esp + 0xf8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x100]
mov esi, dword [esp + 0x100]
test ecx, ecx
jns 0x10097e5e
xor ecx, ecx
jmp 0x10097e6b
cmp ecx, 0xff
jle 0x10097e6b
mov ecx, 0xff
test eax, eax
jns 0x10097e73
xor eax, eax
jmp 0x10097e7f
cmp eax, 0xff
jle 0x10097e7f
mov eax, 0xff
test esi, esi
jns 0x10097e87
xor esi, esi
jmp 0x10097e94
cmp esi, 0xff
jle 0x10097e94
mov esi, 0xff
shl ecx, 8
add ecx, eax
shl ecx, 8
test dword [ebx + 0x12fa8], 0x4000
jne 0x10097eb4
mov eax, dword [ebx + 0x11aa8]
add eax, ecx
add eax, esi
jmp 0x10097ef0
mov eax, dword [esp + 0x8c]
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
add eax, ecx
add eax, esi
jmp 0x10097ef0
test esi, 0x4000
jne 0x10097eda
mov eax, dword [ebx + 0x11aa8]
jmp 0x10097eea
mov eax, dword [esp + 0x8c]
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
add eax, dword [ebx + 0x11b80]
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
test byte [edx + 0x2c], 4
je 0x10097fce
fld dword [edx + 8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x108]
fld dword [edx + 0xc]
mov ecx, dword [esp + 0x108]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x110]
fld dword [edx + 0x10]
mov eax, dword [esp + 0x110]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x118]
mov esi, dword [esp + 0x118]
test ecx, ecx
jns 0x10097f53
xor ecx, ecx
jmp 0x10097f60
cmp ecx, 0xff
jle 0x10097f60
mov ecx, 0xff
test eax, eax
jns 0x10097f68
xor eax, eax
jmp 0x10097f74
cmp eax, 0xff
jle 0x10097f74
mov eax, 0xff
test esi, esi
jns 0x10097f7c
xor esi, esi
jmp 0x10097f89
cmp esi, 0xff
jle 0x10097f89
mov esi, 0xff
shl ecx, 8
add ecx, eax
shl ecx, 8
test dword [ebx + 0x12fa8], 0x8000
jne 0x10097fb2
mov eax, dword [ebx + 0x11b54]
add eax, ecx
add eax, esi
mov esi, dword [esp + 0x38]
mov dword [esi], eax
jmp 0x10098035
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
add eax, ecx
add eax, esi
mov esi, dword [esp + 0x38]
mov dword [esi], eax
jmp 0x10098035
mov eax, dword [ebx + 0x12fa8]
test eax, 0x100000
jne 0x10098031
test dword [ebx + 0x12fbc], 0x800
jne 0x10098008
test byte [ebx + 0x12fb8], 0x80
je 0x10097ffe
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esi], eax
jmp 0x10098035
mov esi, dword [esp + 0x38]
xor eax, eax
mov dword [esi], eax
jmp 0x10098035
mov esi, dword [esp + 0x38]
test eax, 0x8000
jne 0x1009801d
mov eax, dword [ebx + 0x11b54]
mov dword [esi], eax
jmp 0x10098035
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
mov dword [esi], eax
jmp 0x10098035
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
add esi, edi
add ecx, dword [ebx + 0x13010]
add edx, 0x44
add dword [esp + 0x4c], edi
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x48]
add esi, dword [ebx + 0x13008]
sub dword [esp + 0x20], 1
mov dword [esp + 0x48], esi
mov dword [esp + 0x150], esi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x154], ecx
jne 0x10097ba0
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
jmp 0x10098371
mov dword [esp + 0x10], edx
test edx, edx
je 0x10098371
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0x29c]
test byte [ecx + 0x2c], 8
je 0x10098171
fld dword [ebx + 0x11aac]
fadd dword [ecx - 4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [ecx - 4]
fld dword [ebx + 0x11ab0]
fadd dword [ecx]
fstp dword [ecx]
fld dword [ebx + 0x11ab4]
fadd dword [ecx + 4]
fstp dword [ecx + 4]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x120]
fld dword [ecx]
mov eax, dword [esp + 0x120]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x128]
fld dword [ecx + 4]
mov esi, dword [esp + 0x128]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x130]
mov edx, dword [esp + 0x130]
test eax, eax
jns 0x10098125
xor eax, eax
jmp 0x10098131
cmp eax, 0xff
jle 0x10098131
mov eax, 0xff
test esi, esi
jns 0x10098139
xor esi, esi
jmp 0x10098146
cmp esi, 0xff
jle 0x10098146
mov esi, 0xff
test edx, edx
jns 0x1009814e
xor edx, edx
jmp 0x1009815b
cmp edx, 0xff
jle 0x1009815b
mov edx, 0xff
shl eax, 8
add eax, esi
mov esi, dword [esp + 0x4c]
shl eax, 8
add eax, dword [ebx + 0x11aa8]
add eax, edx
jmp 0x1009817d
mov eax, dword [ebx + 0x11b80]
add eax, dword [ebx + 0x11aa8]
mov dword [esi], eax
test byte [ecx + 0x2c], 4
je 0x10098228
fld dword [ecx + 8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x138]
fld dword [ecx + 0xc]
mov eax, dword [esp + 0x138]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x140]
fld dword [ecx + 0x10]
mov esi, dword [esp + 0x140]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0x148]
mov edx, dword [esp + 0x148]
test eax, eax
jns 0x100981dc
xor eax, eax
jmp 0x100981e8
cmp eax, 0xff
jle 0x100981e8
mov eax, 0xff
test esi, esi
jns 0x100981f0
xor esi, esi
jmp 0x100981fd
cmp esi, 0xff
jle 0x100981fd
mov esi, 0xff
test edx, edx
jns 0x10098205
xor edx, edx
jmp 0x10098212
cmp edx, 0xff
jle 0x10098212
mov edx, 0xff
shl eax, 8
add eax, esi
mov esi, dword [esp + 0x4c]
shl eax, 8
add eax, dword [ebx + 0x11b54]
add eax, edx
jmp 0x1009825b
test dword [ebx + 0x12fa8], 0x100000
jne 0x10098261
test dword [ebx + 0x12fbc], 0x800
jne 0x10098255
test byte [ebx + 0x12fb8], 0x80
je 0x10098251
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
jmp 0x1009825b
xor eax, eax
jmp 0x1009825b
mov eax, dword [ebx + 0x11b54]
mov edx, dword [esp + 0x38]
mov dword [edx], eax
mov eax, dword [esp + 0x48]
add esi, edi
add eax, dword [ebx + 0x13008]
add ecx, 0x44
add dword [esp + 0x38], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x40]
add eax, dword [ebx + 0x13010]
sub dword [esp + 0x10], 1
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x154], eax
jne 0x100980a2
mov edx, dword [esp + 0x14]
jmp 0x10098371
mov edx, dword [esp + 0x14]
test esi, esi
js 0x10098311
test byte [ebx + 0x12fb8], 0x40
je 0x100982f6
mov ecx, edx
test edx, edx
je 0x10098311
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
jmp 0x100982d0
mov eax, dword [esi]
mov dword [edx], eax
add edx, edi
add esi, dword [ebx + 0x13008]
mov dword [esp + 0x150], esi
sub ecx, 1
jne 0x100982d0
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x48], esi
jmp 0x10098311
mov eax, edx
test edx, edx
je 0x10098311
mov esi, dword [esp + 0x4c]
mov dword [esi], 0xffffffff
add esi, edi
sub eax, 1
jne 0x10098300
mov dword [esp + 0x4c], esi
test dword [ebx + 0x12fa8], 0x100000
jne 0x10098371
test byte [ebx + 0x12fb8], 0x80
je 0x10098356
mov ecx, edx
test edx, edx
je 0x10098371
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esi], eax
add esi, edi
mov eax, dword [esp + 0x40]
add eax, dword [ebx + 0x13010]
mov dword [esp + 0x40], eax
mov dword [esp + 0x154], eax
sub ecx, 1
jne 0x10098334
jmp 0x1009836d
mov eax, edx
test edx, edx
je 0x10098371
mov esi, dword [esp + 0x38]
mov dword [esi], 0
add esi, edi
sub eax, 1
jne 0x10098360
mov dword [esp + 0x38], esi
test dword [ebx + 0x12fa8], 0x100
je 0x10098404
mov dword [esp + 0x1c], edx
test edx, edx
je 0x10098404
mov eax, dword [esp + 0x70]
lea esi, [esp + 0x2b8]
and eax, 4
mov dword [esp + 0x24], eax
nop
test eax, eax
je 0x100983c3
fld dword [esi - 4]
fld dword [esi]
fld dword [esi - 8]
fmul st(0), st(0)
fxch st(2)
fmul st(0), st(0)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
call sub.msvcrt.dll__CIsqrt
fstp dword [esp + 0x10]
jmp 0x100983d6
fld dword [esi]
fstp dword [esp + 0xc]
mov eax, dword [esp + 0xc]
and eax, 0x7fffffff
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
mov edx, dword [esp + 0xa8]
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.1008af00
add dword [esp + 0xac], edi
add esp, 4
mov eax, dword [esp + 0x24]
add esi, 0x44
sub dword [esp + 0x1c], 1
jne 0x100983a0
test byte [ebx + 0x12fc4], 0x20
mov esi, dword [esp + 0x14]
je 0x1009851f
mov eax, esi
mov dword [esp + 0x10], eax
test esi, esi
je 0x1009851f
mov ecx, dword [esp + 0x78]
lea esi, [esp + 0x2b0]
mov edx, dword [esp + 0xac]
test byte [ebx + 0x12fb8], 0x20
je 0x10098442
fld dword [ecx]
jmp 0x10098449
fld dword [esp + 0xc4]
cmp dword [esp + 0x68], 0
fstp dword [esp + 0x18]
je 0x100984f5
fld dword [esi + 4]
fld dword [esi]
fld dword [esi + 8]
fxch st(2)
fmul st(0), st(0)
fxch st(1)
fmul st(0), st(0)
faddp st(1)
fxch st(1)
fmul st(0), st(0)
faddp st(1)
call sub.msvcrt.dll__CIsqrt
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0xc8]
fmul st(1)
fadd dword [esp + 0xcc]
fld dword [esp + 0xd0]
fmul st(2)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0x74]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x100984b9
fstp st(0)
fld dword [ebx + 0x13820]
jmp 0x100984df
fdivr qword [esp + 0xe0]
call sub.msvcrt.dll__CIsqrt
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fmul dword [ebx + 0x11bf8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fmul dword [esp + 0x18]
mov eax, dword [esp + 0x10]
add esi, 0x44
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0xac]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [edx]
add ecx, dword [ebx + 0x13000]
add edx, edi
sub eax, 1
mov dword [esp + 0xac], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x10], eax
jne 0x10098435
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x64]
test edx, edx
je 0x10098dd4
mov ecx, dword [ebx + 0x12fbc]
mov eax, ecx
and eax, 0x4010000
test ecx, 0x8000000
je 0x100989e2
test eax, eax
jne 0x10098607
mov eax, esi
mov dword [esp + 0x20], eax
test esi, esi
je 0x10098dd4
mov ecx, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
test ecx, ecx
je 0x100985e4
lea eax, [ebx + 0x13018]
mov dword [esp + 0x1c], eax
lea eax, [ebx + 0x13068]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
lea esp, [esp]
mov esi, dword [eax]
mov edi, dword [esp + ebx*4 + 0x158]
push esi
push edi
push edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov edx, dword [esp + 0x10]
add edx, esi
mov dword [esp + 0x10], edx
mov eax, dword [ecx]
add ecx, 8
add eax, edi
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + ebx*4 + 0x158], eax
inc ebx
mov eax, dword [esp + 0x24]
add eax, 4
mov dword [esp + 0x24], eax
cmp ebx, ecx
jb 0x10098590
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
add edx, edi
sub eax, 1
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], eax
jne 0x10098560
mov eax, dword [esp + 0x158]
jmp 0x10098dd0
test ecx, 0x10000
jne 0x10098726
mov eax, dword [esp + 0x34]
xor edi, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edi
test edx, edx
je 0x10098719
lea ecx, [ebx + 0x13018]
lea esi, [ebx + 0x13088]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], esi
lea ecx, [ecx]
mov ebx, dword [esp + edi*4 + 0x158]
mov edi, ebx
mov eax, dword [esi - 0x20]
mov ecx, dword [ecx]
mov edx, dword [esi]
mov dword [esp + 0xc], ebx
mov ebx, dword [esi + 0x148]
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ecx
test ebx, ebx
jne 0x10098694
mov edx, dword [esp + 0x14]
mov ebx, edx
mov esi, dword [esp + 0x20]
test edx, edx
je 0x100986c8
push eax
push edi
push esi
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x1c]
add esp, 0xc
add esi, dword [esp + 0x30]
add edi, ecx
mov eax, dword [esp + 0x24]
sub ebx, 1
jne 0x10098674
jmp 0x100986c4
push dword [esp + 0x30]
shr eax, 2
push ecx
push dword [esp + 0x1c]
shr edx, 2
push ebx
push dword [esp + 0x30]
lea esi, [edx + eax*4]
mov esi, dword [esi*4 + 0x10002b2c]
mov ecx, esi
push edi
call dword [0x100a8504]
call esi
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov eax, dword [esp + 0x24]
add dword [esp + 0x20], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
add esi, 4
lea eax, [ecx + eax*2]
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x18]
mov dword [esp + edi*4 + 0x158], eax
add ecx, 8
inc edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edi
cmp edi, dword [esp + 0x64]
jb 0x10098640
mov eax, dword [esp + 0x158]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
jmp 0x10098dd4
cmp dword [ebx + 0x131cc], 0
mov edx, dword [esp + 0x34]
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], 0
jbe 0x1009899c
lea eax, [ebx + 0x13068]
lea ecx, [ebx + 0x130c0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], ecx
jmp 0x10098764
mov esi, dword [esp + 0x14]
mov edx, dword [eax]
mov eax, dword [ecx + 8]
mov dword [esp + 0x2c], edx
test eax, eax
jne 0x10098787
mov eax, dword [ecx - 0x14]
mov edi, dword [esp + eax*4 + 0x158]
mov esi, dword [ebx + eax*8 + 0x13018]
jmp 0x1009882e
cmp eax, 0x20000
jne 0x1009879f
lea edi, [esp + 0x2b0]
mov esi, 0x44
jmp 0x1009882e
cmp eax, 0x10000
jne 0x100987b7
lea edi, [esp + 0x2bc]
mov esi, 0x44
jmp 0x1009882e
mov eax, dword [ebx + 0x12fbc]
and eax, 0x1000000
test esi, esi
je 0x10098822
mov ebx, dword [esp + 0x14]
lea edi, [esp + 0x198]
test eax, eax
je 0x100987fb
lea esi, [esp + 0x2b0]
lea esp, [esp]
push edi
lea edx, [esi + 0xc]
mov ecx, esi
call fcn.10098f50
add esp, 4
add edi, 0xc
add esi, 0x44
sub ebx, 1
jne 0x100987e0
jmp 0x10098816
lea esi, [esp + 0x2bc]
mov edx, edi
mov ecx, esi
call fcn.10098f20
add edi, 0xc
add esi, 0x44
sub ebx, 1
jne 0x10098802
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x198]
mov esi, 0xc
cmp dword [ecx + 0xc], 0
mov eax, dword [ecx]
mov dword [esp + 0x20], esi
je 0x100988f9
test eax, eax
mov eax, dword [esp + 0x18]
jne 0x10098887
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], eax
test eax, eax
je 0x10098965
mov ebx, dword [esp + 0x1c]
mov edi, edi
push edx
mov edx, ebx
mov ecx, edi
call fcn.10098e80
add ebx, dword [esp + 0x34]
add esp, 4
mov edx, dword [esp + 0x2c]
add edi, esi
sub dword [esp + 0x10], 1
jne 0x10098860
mov ebx, dword [esp + 0x44]
jmp 0x10098961
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x10098965
mov ebx, dword [esp + 0x20]
nop
mov esi, dword [ecx + 4]
lea eax, [esp + 0x178]
push dword [ecx]
push eax
mov esi, dword [esi*4 + 0x10002b80]
mov ecx, esi
push edi
call dword [0x100a8504]
call esi
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x184]
add esp, 0xc
mov edx, esi
push dword [esp + 0x2c]
call fcn.10098e80
add esi, dword [esp + 0x34]
add esp, 4
mov ecx, dword [esp + 0x28]
add edi, ebx
sub dword [esp + 0x1c], 1
mov dword [esp + 0x10], esi
jne 0x100988a0
mov ebx, dword [esp + 0x44]
jmp 0x10098961
test eax, eax
jne 0x10098937
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], eax
test eax, eax
je 0x10098965
mov ebx, dword [esp + 0x1c]
push edx
push edi
push ebx
call sub.msvcrt.dll_memcpy
add ebx, dword [esp + 0x3c]
add esp, 0xc
mov edx, dword [esp + 0x2c]
add edi, esi
sub dword [esp + 0x10], 1
jne 0x10098915
mov ebx, dword [esp + 0x44]
jmp 0x10098961
push dword [esp + 0x30]
mov esi, dword [ecx + 4]
push dword [esp + 0x24]
push dword [esp + 0x1c]
mov esi, dword [esi*4 + 0x10002b40]
mov ecx, esi
push eax
mov eax, dword [esp + 0x28]
push eax
push edi
call dword [0x100a8504]
call esi
add esp, 0x18
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
add ecx, 0x24
mov edi, dword [esp + 0x18]
inc esi
mov eax, dword [esp + 0xc]
add edi, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], ecx
cmp esi, dword [ebx + 0x131cc]
jb 0x10098760
mov edx, dword [esp + 0x34]
add edx, dword [esp + 0x7c]
xor ecx, ecx
mov esi, dword [ebx + 0x12fd0]
mov dword [esp + 0x34], edx
test esi, esi
je 0x10098dd4
lea edx, [ebx + 0x13018]
lea ebx, [ebx]
mov eax, dword [edx]
lea edx, [edx + 8]
lea eax, [eax + eax*4]
add eax, eax
add dword [esp + ecx*4 + 0x158], eax
inc ecx
cmp ecx, esi
jb 0x100989c0
mov eax, dword [esp + 0x158]
jmp 0x10098dd0
test eax, eax
jne 0x10098a2f
cmp dword [esp + 0x14], eax
je 0x10098dd4
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
push dword [ebx + 0x12fd8]
push eax
push edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x3c]
add edx, edi
add eax, dword [esp + 0x6c]
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x158], eax
sub esi, 1
jne 0x100989f8
jmp 0x10098dd4
test ecx, 0x10000
jne 0x10098b48
cmp dword [esp + 0x64], 0
mov eax, dword [esp + 0x3c]
mov edx, eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
jbe 0x10098ae7
mov eax, dword [esp + 0x64]
lea esi, [ebx + 0x13088]
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], eax
lea ebx, [ebx]
mov ebx, dword [esi]
mov eax, dword [esi - 0x20]
mov dword [esp + 0xc], ebx
mov ebx, dword [esi + 0x148]
mov dword [esp + 0x24], eax
test ebx, ebx
jne 0x10098b05
mov ebx, dword [esp + 0x14]
mov esi, ecx
mov edi, edx
test ebx, ebx
je 0x10098abb
push eax
push edi
push esi
call sub.msvcrt.dll_memcpy
add edi, dword [esp + 0x78]
add esp, 0xc
add esi, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
sub ebx, 1
jne 0x10098a97
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
add ecx, eax
add edx, dword [esp + 0xc]
add esi, 4
sub dword [esp + 0x1c], 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], esi
jne 0x10098a70
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
add eax, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x7c]
add dword [esp + 0x34], eax
jmp 0x10098dd8
push edi
push dword [esp + 0x70]
mov ecx, eax
mov eax, dword [esp + 0x14]
push dword [esp + 0x1c]
shr ecx, 2
shr eax, 2
push ebx
push dword [esp + 0x30]
lea esi, [eax + ecx*4]
mov esi, dword [esi*4 + 0x10002b2c]
mov ecx, esi
push edx
call dword [0x100a8504]
call esi
mov eax, dword [esp + 0x3c]
add esp, 0x18
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
jmp 0x10098abf
cmp dword [ebx + 0x131cc], 0
mov edx, dword [esp + 0x34]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], 0
jbe 0x10098db9
lea ecx, [ebx + 0x13068]
lea eax, [ebx + 0x130c0]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
jmp 0x10098b84
mov esi, dword [esp + 0x14]
mov edx, dword [eax + 8]
mov ecx, dword [ecx]
mov dword [esp + 0x18], ecx
test edx, edx
jne 0x10098ba1
mov edi, dword [eax - 0x10]
add edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x6c]
jmp 0x10098c4e
cmp edx, 0x20000
jne 0x10098bba
lea edi, [esp + 0x2b0]
mov esi, 0x44
jmp 0x10098c4e
cmp edx, 0x10000
jne 0x10098bd3
lea edi, [esp + 0x2bc]
mov esi, 0x44
jmp 0x10098c4e
mov edx, dword [ebx + 0x12fbc]
and edx, 0x1000000
test esi, esi
je 0x10098c42
mov ebx, dword [esp + 0x14]
lea edi, [esp + 0x210]
test edx, edx
je 0x10098c1b
lea esi, [esp + 0x2b0]
lea esp, [esp]
push edi
lea edx, [esi + 0xc]
mov ecx, esi
call fcn.100b8c7d
add esp, 4
add edi, 0xc
add esi, 0x44
sub ebx, 1
jne 0x10098c00
jmp 0x10098c36
lea esi, [esp + 0x2bc]
mov edx, edi
mov ecx, esi
call fcn.10098f20
add edi, 0xc
add esi, 0x44
sub ebx, 1
jne 0x10098c22
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x210]
mov esi, 0xc
cmp dword [eax + 0xc], 0
mov edx, dword [eax]
mov dword [esp + 0x20], esi
je 0x10098d16
test edx, edx
mov edx, dword [esp + 0x2c]
jne 0x10098ca7
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
test edx, edx
je 0x10098d82
mov ebx, dword [esp + 0x10]
mov edi, edi
push ecx
mov edx, ebx
mov ecx, edi
call fcn.10098e80
add ebx, dword [esp + 0x34]
add esp, 4
mov ecx, dword [esp + 0x18]
add edi, esi
sub dword [esp + 0xc], 1
jne 0x10098c80
mov ebx, dword [esp + 0x44]
jmp 0x10098d7e
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
test edx, edx
je 0x10098d82
mov ebx, dword [esp + 0x20]
nop
mov esi, dword [eax + 4]
push dword [eax]
lea eax, [esp + 0x18c]
push eax
mov esi, dword [esi*4 + 0x10002b80]
mov ecx, esi
push edi
call dword [0x100a8504]
call esi
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x194]
add esp, 0xc
mov edx, esi
push dword [esp + 0x18]
call fcn.10098e80
add esi, dword [esp + 0x34]
add esp, 4
mov eax, dword [esp + 0x28]
add edi, ebx
sub dword [esp + 0x10], 1
mov dword [esp + 0xc], esi
jne 0x10098cc0
mov ebx, dword [esp + 0x44]
jmp 0x10098d7e
test edx, edx
jne 0x10098d54
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
test edx, edx
je 0x10098d82
mov ebx, dword [esp + 0x10]
push ecx
push edi
push ebx
call sub.msvcrt.dll_memcpy
add ebx, dword [esp + 0x3c]
add esp, 0xc
mov ecx, dword [esp + 0x18]
add edi, esi
sub dword [esp + 0xc], 1
jne 0x10098d32
mov ebx, dword [esp + 0x44]
jmp 0x10098d7e
push dword [esp + 0x30]
mov esi, dword [eax + 4]
push dword [esp + 0x24]
push dword [esp + 0x1c]
mov esi, dword [esi*4 + 0x10002b40]
mov ecx, esi
push edx
mov edx, dword [esp + 0x3c]
push edx
push edi
call dword [0x100a8504]
call esi
add esp, 0x18
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
add eax, 0x24
mov edi, dword [esp + 0x2c]
inc esi
mov ecx, dword [esp + 0x24]
add edi, dword [esp + 0x18]
add ecx, 4
mov dword [esp + 0x2c], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
cmp esi, dword [ebx + 0x131cc]
jb 0x10098b80
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x50]
add edx, dword [esp + 0x7c]
mov dword [esp + 0x158], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x14]
cmp esi, dword [esp + 0x80]
jne 0x10098e29
mov eax, dword [esp + 0xd4]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xd8]
add dword [esp + 0x60], eax
mov eax, dword [esp + 0xdc]
add dword [esp + 0x5c], eax
mov eax, dword [esp + 0x84]
add dword [esp + 0x54], edx
sub eax, esi
mov dword [esp + 0x84], eax
je 0x10098e3e
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
jmp 0x100975c8
mov ecx, dword [ebx + 0x12fa4]
sub ecx, dword [esp + 0x84]
add ecx, esi
mov dword [ebx + 0x13810], ecx
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x624]
mov dword [ebx + 0x12fe0], eax
mov eax, dword [esp + 0xb8]
pop edi
mov dword [ebx + 0x12ff8], eax
mov eax, dword [ebx + 0x11c1c]
pop esi
pop ebx
xor ecx, esp
call fcn.1009b610
mov esp, ebp
pop ebp
ret