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

Disassembly:
sub esp, 0xcc
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 4]
mov dword [esi + 8], eax
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x28], ecx
mov edx, dword [esi + 0x118]
sub edx, dword [esi + 0x114]
mov ecx, dword [esi + 0x1e0]
sar edx, 2
push edi
cmp edx, ecx
je 0x10007d5d
mov eax, dword [esi + 0x118]
mov ebp, dword [esi + 0x114]
mov edx, eax
sub edx, ebp
sar edx, 2
cmp ecx, edx
jbe 0x10007ccc
sub ecx, edx
mov ebx, ecx
mov dword [esp + 0x10], ebx
mov edi, eax
je 0x10007ce5
test ebp, ebp
jne 0x10007bd8
xor ecx, ecx
jmp 0x10007be3
mov ecx, dword [esi + 0x11c]
sub ecx, ebp
sar ecx, 2
add edx, ebx
cmp ecx, edx
jae 0x10007c8d
sub eax, ebp
sar eax, 2
mov dword [esp + 0x3c], eax
lea ecx, [edx + edx]
test ebp, ebp
jne 0x10007c01
xor eax, eax
jmp 0x10007c0c
mov eax, dword [esi + 0x11c]
sub eax, ebp
sar eax, 2
cmp eax, ecx
jae 0x10007c80
lea ebp, [ecx*4]
push ebp
call fcn.1000d98d
mov edx, dword [esi + 0x118]
mov edi, eax
mov eax, dword [esi + 0x114]
add esp, 4
mov ecx, edi
cmp eax, edx
je 0x10007c46
mov ebx, dword [eax]
mov dword [ecx], ebx
add eax, 4
add ecx, 4
cmp eax, edx
jne 0x10007c34
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 0x114]
test eax, eax
je 0x10007c59
push eax
call fcn.1000da57
add esp, 4
mov ecx, dword [esi + 0x118]
sub ecx, dword [esi + 0x114]
lea eax, [edi + ebp]
sar ecx, 2
lea edx, [edi + ecx*4]
mov dword [esi + 0x11c], eax
mov dword [esi + 0x118], edx
mov dword [esi + 0x114], edi
mov eax, dword [esi + 0x114]
mov ecx, dword [esp + 0x3c]
lea edi, [eax + ecx*4]
mov ecx, dword [esi + 0x118]
lea eax, [ecx - 4]
lea edx, [edi - 4]
lea ebp, [ebx*4]
lea ecx, [ecx + ebp - 4]
cmp eax, edx
je 0x10007cba
mov ebx, dword [eax]
mov dword [ecx], ebx
sub eax, 4
sub ecx, 4
cmp eax, edx
jne 0x10007ca8
mov ebx, dword [esp + 0x10]
test ebx, ebx
jbe 0x10007cc4
mov ecx, ebx
xor eax, eax
rep stosd dword es:[edi], eax
add dword [esi + 0x118], ebp
jmp 0x10007ce5
jae 0x10007ce5
mov edx, eax
lea ecx, [ebp + ecx*4]
sub edx, ecx
sar edx, 2
add edx, edx
add edx, edx
sub eax, edx
mov dword [esi + 0x118], eax
mov eax, dword [esi + 0x114]
cmp eax, dword [esi + 0x118]
jne 0x10007d14
test eax, eax
je 0x10007d00
push eax
call fcn.1000da57
add esp, 4
xor eax, eax
mov dword [esi + 0x114], eax
mov dword [esi + 0x118], eax
mov dword [esi + 0x11c], eax
mov eax, dword [esi + 0x118]
cmp dword [esi + 0x11c], eax
jbe 0x10007d5d
mov ecx, dword [esi + 0x114]
sub eax, ecx
sar eax, 2
mov edi, eax
mov eax, dword [esi + 0x118]
sub eax, ecx
sar eax, 2
add eax, eax
add eax, eax
push eax
push ecx
call fcn.1000e085
mov dword [esi + 0x114], eax
lea eax, [eax + edi*4]
add esp, 8
mov dword [esi + 0x118], eax
mov dword [esi + 0x11c], eax
mov ecx, dword [esi + 0x58]
sub ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x1d8]
sar ecx, 2
cmp ecx, edx
je 0x10007ede
mov eax, dword [esi + 0x58]
mov ebp, dword [esi + 0x54]
mov ecx, eax
sub ecx, ebp
sar ecx, 2
cmp edx, ecx
jbe 0x10007e71
sub edx, ecx
mov ebx, edx
mov dword [esp + 0x10], ebx
mov edi, eax
je 0x10007e87
test ebp, ebp
jne 0x10007da1
xor edx, edx
jmp 0x10007da9
mov edx, dword [esi + 0x5c]
sub edx, ebp
sar edx, 2
add ecx, ebx
cmp edx, ecx
jae 0x10007e34
sub eax, ebp
sar eax, 2
add ecx, ecx
mov dword [esp + 0x3c], eax
test ebp, ebp
jne 0x10007dc6
xor eax, eax
jmp 0x10007dce
mov eax, dword [esi + 0x5c]
sub eax, ebp
sar eax, 2
cmp eax, ecx
jae 0x10007e2a
lea ebp, [ecx*4]
push ebp
call fcn.1000d98d
mov edx, dword [esi + 0x58]
mov edi, eax
mov eax, dword [esi + 0x54]
add esp, 4
mov ecx, edi
cmp eax, edx
je 0x10007e02
mov ebx, dword [eax]
mov dword [ecx], ebx
add eax, 4
add ecx, 4
cmp eax, edx
jne 0x10007df0
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 0x54]
test eax, eax
je 0x10007e12
push eax
call fcn.1000da57
add esp, 4
mov eax, dword [esi + 0x58]
sub eax, dword [esi + 0x54]
lea edx, [edi + ebp]
sar eax, 2
lea ecx, [edi + eax*4]
mov dword [esi + 0x5c], edx
mov dword [esi + 0x58], ecx
mov dword [esi + 0x54], edi
mov edx, dword [esi + 0x54]
mov eax, dword [esp + 0x3c]
lea edi, [edx + eax*4]
mov ecx, dword [esi + 0x58]
lea eax, [ecx - 4]
lea edx, [edi - 4]
lea ebp, [ebx*4]
lea ecx, [ecx + ebp - 4]
cmp eax, edx
je 0x10007e62
lea esp, [esp]
mov ebx, dword [eax]
mov dword [ecx], ebx
sub eax, 4
sub ecx, 4
cmp eax, edx
jne 0x10007e50
mov ebx, dword [esp + 0x10]
test ebx, ebx
jbe 0x10007e6c
mov ecx, ebx
xor eax, eax
rep stosd dword es:[edi], eax
add dword [esi + 0x58], ebp
jmp 0x10007e87
jae 0x10007e87
mov ecx, eax
lea edx, [ebp + edx*4]
sub ecx, edx
sar ecx, 2
add ecx, ecx
add ecx, ecx
sub eax, ecx
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x54]
cmp eax, dword [esi + 0x58]
jne 0x10007ea7
xor edi, edi
cmp eax, edi
je 0x10007e9e
push eax
call fcn.1000da57
add esp, 4
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], edi
mov eax, dword [esi + 0x58]
cmp dword [esi + 0x5c], eax
jbe 0x10007ede
mov ecx, dword [esi + 0x54]
sub eax, ecx
sar eax, 2
mov edi, eax
mov eax, dword [esi + 0x58]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
push edx
push ecx
call fcn.1000e085
mov dword [esi + 0x54], eax
lea eax, [eax + edi*4]
add esp, 8
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], eax
mov ebp, dword [esi + 0x1d8]
mov eax, dword [esi + 0x1dc]
dec ebp
dec eax
imul ebp, eax
cmp dword [esi + 0x1f0], 0
mov dword [esp + 0x24], ebp
mov dword [esp + 0x14], 0
jbe 0x10008072
lea edi, [esi + 0x74]
jmp 0x10007f10
mov ecx, dword [edi + 4]
sub ecx, dword [edi]
cmp ecx, ebp
je 0x10008053
mov eax, dword [edi + 4]
mov ecx, dword [edi]
mov edx, eax
sub edx, ecx
cmp ebp, edx
jbe 0x10008008
mov ebx, ecx
sub ebx, eax
add ebx, ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x18], eax
je 0x1000800f
test ecx, ecx
jne 0x10007f4a
xor ebp, ebp
jmp 0x10007f4f
mov ebp, dword [edi + 8]
sub ebp, ecx
add edx, ebx
cmp ebp, edx
jae 0x10007fcc
sub eax, ecx
add edx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edx
test ecx, ecx
jne 0x10007f69
xor eax, eax
jmp 0x10007f6e
mov eax, dword [edi + 8]
sub eax, ecx
cmp eax, edx
jae 0x10007fc0
mov edx, dword [esp + 0x10]
push edx
call fcn.1000d98d
mov ebp, dword [edi + 4]
mov ebx, eax
mov eax, dword [edi]
add esp, 4
mov ecx, ebx
cmp eax, ebp
je 0x10007f9a
lea esp, [esp]
mov dl, byte [eax]
mov byte [ecx], dl
inc eax
inc ecx
cmp eax, ebp
jne 0x10007f90
mov eax, dword [edi]
test eax, eax
je 0x10007fa9
push eax
call fcn.1000da57
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, ebx
sub edx, dword [edi]
lea ecx, [ebx + eax]
add dword [edi + 4], edx
mov dword [edi], ebx
mov ebx, dword [esp + 0x3c]
mov dword [edi + 8], ecx
mov edx, dword [edi]
add edx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
jmp 0x10007fd0
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 4]
lea eax, [ecx - 1]
lea ebp, [edx - 1]
lea ecx, [ebx + ecx - 1]
cmp eax, ebp
je 0x10007fef
mov dl, byte [eax]
mov byte [ecx], dl
dec eax
dec ecx
cmp eax, ebp
jne 0x10007fe1
mov edx, dword [esp + 0x18]
test ebx, ebx
jbe 0x10007fff
push ebx
push 0
push edx
call fcn.1000dbb0
add esp, 0xc
add dword [edi + 4], ebx
mov ebp, dword [esp + 0x24]
jmp 0x1000800f
jae 0x1000800f
add ecx, ebp
mov dword [edi + 4], ecx
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jne 0x1000802d
xor ebx, ebx
cmp eax, ebx
je 0x10008025
push eax
call fcn.1000da57
add esp, 4
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov ecx, dword [edi + 4]
cmp dword [edi + 8], ecx
jbe 0x10008053
mov eax, dword [edi]
mov ebx, ecx
sub ebx, eax
push ebx
push eax
call fcn.1000e085
mov ebp, dword [esp + 0x2c]
add esp, 8
add ebx, eax
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov eax, dword [esp + 0x14]
inc eax
shr ebp, 2
add edi, 0x10
mov dword [esp + 0x24], ebp
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x1f0]
jb 0x10007f10
xor eax, eax
cmp dword [esi + 0x1e0], eax
jbe 0x10008096
lea esp, [esp]
mov ecx, dword [esi + 0x114]
mov dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, dword [esi + 0x1e0]
jb 0x10008080
mov eax, dword [esi + 0x1dc]
fld dword [0x1001c2cc]
xor edx, edx
sub eax, 1
mov dword [esp + 0x20], edx
je 0x10008829
fld dword [esp + 0xe0]
jmp 0x100080be
mov edx, dword [esp + 0x20]
mov ecx, edx
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
test ecx, ecx
jge 0x100080d2
fadd dword [0x1001c858]
mov eax, dword [esi + 0x1d8]
fmul dword [esi + 0x1c8]
mov ecx, eax
dec eax
imul ecx, edx
fst dword [esp + 0x24]
imul eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x1d8]
lea edx, [eax - 1]
mov dword [esp + 0x2c], 0
test edx, edx
jbe 0x100088f6
lea edx, [ecx*4]
inc ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], ecx
jmp 0x10008122
fld dword [0x1001c2cc]
fxch st(2)
cmp dword [esp + 0x20], 0
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x58]
lea edi, [ecx + eax]
mov eax, dword [esi + 0x114]
mov edx, dword [eax + ebp]
mov ecx, dword [eax + ebp + 4]
mov dword [esp + 0x74], edx
mov edx, dword [eax + edi*4]
mov eax, dword [eax + edi*4 - 4]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], eax
jne 0x1000816b
or eax, 0xffffffff
mov dword [esp + 0x84], eax
jmp 0x1000817b
mov edx, dword [esi + 0x54]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x84], eax
or eax, 0xffffffff
mov dword [esp + 0x8c], eax
test ecx, ecx
jne 0x1000818f
mov dword [esp + 0x90], eax
jmp 0x1000819d
mov edx, dword [esp + 0x88]
mov dword [esp + 0x90], edx
mov dword [esp + 0x88], eax
mov eax, dword [esi + 0x34]
fld dword [eax + ebp]
xor ebx, ebx
fst dword [esp + 0x94]
fld dword [eax + ebp + 4]
fst dword [esp + 0x98]
fld dword [eax + edi*4]
fst dword [esp + 0x9c]
fld dword [eax + edi*4 - 4]
fst dword [esp + 0xa0]
fxch st(3)
fcomp st(6)
fnstsw ax
test ah, 0x41
jne 0x100081e3
mov ebx, 1
fxch st(1)
fcomp st(5)
fnstsw ax
test ah, 0x41
jne 0x100081f1
or ebx, 2
fcomp st(4)
fnstsw ax
test ah, 0x41
jne 0x100081fd
or ebx, 4
fcomp st(3)
fnstsw ax
fstp st(2)
test ah, 0x41
jne 0x1000820b
or ebx, 8
test ebx, ebx
jne 0x1000821e
mov eax, dword [esi + 0x74]
mov ecx, dword [esp + 0x1c]
mov byte [ecx + eax], bl
jmp 0x100087c5
mov edx, dword [esi + 0x74]
mov eax, dword [esp + 0x1c]
cmp ebx, 0xf
jne 0x10008230
mov byte [eax + edx], 1
jmp 0x10008234
mov byte [eax + edx], 2
mov eax, dword [esi + 0x44]
fld dword [eax + ebp]
fst dword [esp + 0x64]
fld dword [eax + ebp + 4]
fst dword [esp + 0x68]
fld dword [eax + edi*4]
fst dword [esp + 0x6c]
fld dword [eax + edi*4 - 4]
fst dword [esp + 0x70]
cmp ebx, 0xf
jne 0x100082d4
fld st(3)
fsub st(3)
fabs
fcomp st(5)
fnstsw ax
test ah, 0x41
je 0x100082a6
fxch st(2)
fsub st(1)
fabs
fcomp st(4)
fnstsw ax
test ah, 0x41
je 0x100082be
fsub st(1)
fabs
fcomp st(3)
fnstsw ax
test ah, 0x41
je 0x100082c0
fsubrp st(1)
fabs
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x100087c5
mov ecx, dword [esi + 0x74]
mov edx, dword [esp + 0x1c]
mov byte [edx + ecx], 4
jmp 0x100087c5
mov ecx, dword [esi + 0x74]
fstp st(3)
mov edx, dword [esp + 0x1c]
fstp st(1)
fstp st(0)
mov byte [edx + ecx], 4
fstp st(0)
jmp 0x100087c5
fstp st(2)
mov ecx, dword [esi + 0x74]
fstp st(1)
mov edx, dword [esp + 0x1c]
fstp st(0)
mov byte [edx + ecx], 4
jmp 0x100087c5
mov dword [esp + 0x28], ecx
fstp st(4)
fild dword [esp + 0x28]
test ecx, ecx
jge 0x100082e8
fadd dword [0x1001c858]
fmul dword [esi + 0x1c8]
fst dword [esp + 0x54]
fld dword [0x1001c284]
fld dword [0x1001c854]
fucomp st(5)
fnstsw ax
test ah, 0x44
jnp 0x1000831a
fld dword [0x1001c284]
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x1000831a
fstp st(0)
jmp 0x1000831c
fstp st(4)
fld dword [0x1001c854]
fld st(0)
fucomp st(4)
fnstsw ax
test ah, 0x44
jnp 0x1000833c
fxch st(3)
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x10008340
fstp st(4)
jmp 0x10008342
fstp st(3)
jmp 0x10008342
fstp st(0)
fld st(2)
fucomp st(2)
fnstsw ax
test ah, 0x44
jnp 0x1000835c
fxch st(1)
fcom st(3)
fnstsw ax
test ah, 0x41
jne 0x10008360
fstp st(3)
jmp 0x10008362
fstp st(1)
jmp 0x10008362
fstp st(0)
fld st(1)
fucomp st(4)
fnstsw ax
test ah, 0x44
jnp 0x1000837c
fxch st(3)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x10008380
fstp st(2)
jmp 0x10008382
fstp st(3)
jmp 0x10008382
fstp st(0)
xor ecx, ecx
fcom dword [esp + ecx*4 + 0x64]
fnstsw ax
test ah, 0x44
jp 0x10008397
fxch st(1)
fst dword [esp + ecx*4 + 0x64]
fxch st(1)
inc ecx
cmp ecx, 4
jb 0x10008384
fstp st(1)
fstp st(0)
fst dword [esp + 0xac]
fxch st(1)
fst dword [esp + 0xb0]
fld dword [esp + 0x64]
fstp dword [esp + 0xb4]
fld dword [esi + 0x1c8]
fadd st(2)
fst dword [esp + 0xb8]
fxch st(1)
fst dword [esp + 0xbc]
fld dword [esp + 0x68]
fstp dword [esp + 0xc0]
fxch st(1)
fst dword [esp + 0x10]
fld dword [esi + 0x1c8]
faddp st(2)
fld st(1)
fst dword [esp + 0x48]
fstp dword [esp + 0xc8]
fstp dword [esp + 0xc4]
fld dword [esp + 0x6c]
fstp dword [esp + 0xcc]
fst dword [esp + 0x5c]
fstp dword [esp + 0xd4]
fstp dword [esp + 0xd0]
fld dword [esp + 0x70]
fstp dword [esp + 0xd8]
test bl, 1
je 0x10008451
cmp dword [esp + 0x74], 0
jge 0x10008451
lea eax, [esp + 0xac]
push eax
mov ecx, esi
call fcn.10005380
mov ecx, dword [esi + 0x114]
mov dword [esp + 0x74], eax
mov dword [ecx + ebp], eax
test bl, 2
je 0x1000847a
cmp dword [esp + 0x78], 0
jge 0x1000847a
lea edx, [esp + 0xb8]
push edx
mov ecx, esi
call fcn.10005380
mov ecx, dword [esi + 0x114]
mov dword [esp + 0x78], eax
mov dword [ecx + ebp + 4], eax
test bl, 4
je 0x100084a2
cmp dword [esp + 0x7c], 0
jge 0x100084a2
lea edx, [esp + 0xc4]
push edx
mov ecx, esi
call fcn.10005380
mov ecx, dword [esi + 0x114]
mov dword [esp + 0x7c], eax
mov dword [ecx + edi*4], eax
test bl, 8
je 0x100084d1
cmp dword [esp + 0x80], 0
jge 0x100084d1
lea edx, [esp + 0xd0]
push edx
mov ecx, esi
call fcn.10005380
mov ecx, dword [esi + 0x114]
mov dword [esp + 0x80], eax
mov dword [ecx + edi*4 - 4], eax
mov eax, dword [ebx*4 + 0x10022368]
mov dword [esp + 0x18], eax
test al, 1
je 0x10008564
cmp dword [esp + 0x84], 0
jge 0x10008564
fld dword [0x1001c2cc]
lea edx, [esp + 0x30]
push edx
sub esp, 0x18
fstp dword [esp + 0x14]
mov eax, esp
fld dword [esp + 0xb4]
sub esp, 0xc
fstp dword [esp + 0x1c]
mov ecx, esi
fld dword [esp + 0xbc]
fstp dword [esp + 0x18]
fld dword [esp + 0xe0]
fstp dword [eax]
fld dword [esp + 0x4c]
fst dword [eax + 4]
fld dword [esp + 0x90]
fstp dword [eax + 8]
mov eax, esp
fld dword [esp + 0x7c]
fstp dword [eax]
fstp dword [eax + 4]
fld dword [esp + 0x8c]
fstp dword [eax + 8]
call fcn.100043d0
mov eax, edx
push eax
call fcn.10005380
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x18]
test al, 2
je 0x100085e4
fld dword [0x1001c2cc]
lea ecx, [esp + 0x30]
push ecx
sub esp, 0x18
fstp dword [esp + 0x14]
mov eax, esp
fld dword [esp + 0xb8]
sub esp, 0xc
fstp dword [esp + 0x1c]
mov ecx, esi
fld dword [esp + 0xc0]
fstp dword [esp + 0x18]
fld dword [esp + 0x38]
fstp dword [eax]
fld dword [esp + 0x70]
fstp dword [eax + 4]
fld dword [esp + 0x94]
fstp dword [eax + 8]
mov eax, esp
fld dword [esp + 0xe0]
fstp dword [eax]
fld dword [esp + 0x4c]
fstp dword [eax + 4]
fld dword [esp + 0x90]
fstp dword [eax + 8]
call fcn.100043d0
lea edx, [esp + 0x30]
push edx
call fcn.10005380
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x18]
test al, 4
je 0x10008666
fld dword [0x1001c2cc]
lea eax, [esp + 0x30]
push eax
sub esp, 0x18
fstp dword [esp + 0x14]
mov eax, esp
fld dword [esp + 0xbc]
sub esp, 0xc
fstp dword [esp + 0x1c]
mov ecx, esi
fld dword [esp + 0xc4]
fstp dword [esp + 0x18]
fld dword [esp + 0x7c]
fstp dword [eax]
fld dword [esp + 0x84]
fstp dword [eax + 4]
fld dword [esp + 0x98]
fstp dword [eax + 8]
mov eax, esp
fld dword [esp + 0x38]
fstp dword [eax]
fld dword [esp + 0x70]
fstp dword [eax + 4]
fld dword [esp + 0x94]
fstp dword [eax + 8]
call fcn.100043d0
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
call fcn.10005380
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x18]
test al, 8
je 0x100086e6
cmp dword [esp + 0x90], 0
jge 0x100086e6
fld dword [0x1001c2cc]
lea edx, [esp + 0x30]
push edx
sub esp, 0x18
fstp dword [esp + 0x14]
mov eax, esp
fld dword [esp + 0xb0]
sub esp, 0xc
fstp dword [esp + 0x1c]
mov ecx, esi
fld dword [esp + 0xc8]
fstp dword [esp + 0x18]
fld dword [esp + 0x7c]
fst dword [eax]
fld dword [esp + 0x4c]
fstp dword [eax + 4]
fld dword [esp + 0x8c]
fstp dword [eax + 8]
mov eax, esp
fstp dword [eax]
fld dword [esp + 0x84]
fstp dword [eax + 4]
fld dword [esp + 0x98]
fstp dword [eax + 8]
call fcn.100043d0
mov eax, edx
push eax
call fcn.10005380
mov dword [esp + 0x90], eax
cmp byte [esi + 0x1f4], 0
lea ebp, [ebx + ebx*4]
je 0x100086fb
lea ebp, [ebp*8 + 0x100223a8]
jmp 0x10008702
lea ebp, [ebp*8 + 0x10022650]
mov eax, dword [ebp]
mov dword [esp + 0x18], ebp
test eax, eax
jl 0x100087b8
mov ecx, dword [esp + eax*4 + 0x74]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 0x2c]
cmp ecx, eax
ja 0x10008799
mov edx, dword [esi + 0x24]
sub eax, edx
sar eax, 2
lea eax, [eax + eax + 2]
test edx, edx
jne 0x10008737
xor ecx, ecx
jmp 0x1000873c
sub ecx, edx
sar ecx, 2
cmp ecx, eax
jae 0x10008799
lea ebx, [eax*4]
push ebx
call fcn.1000d98d
mov edx, dword [esi + 0x28]
mov edi, eax
mov eax, dword [esi + 0x24]
add esp, 4
mov ecx, edi
cmp eax, edx
je 0x10008772
mov edi, edi
mov ebp, dword [eax]
mov dword [ecx], ebp
add eax, 4
add ecx, 4
cmp eax, edx
jne 0x10008760
mov ebp, dword [esp + 0x18]
mov eax, dword [esi + 0x24]
test eax, eax
je 0x10008782
push eax
call fcn.1000da57
add esp, 4
mov edx, dword [esi + 0x28]
sub edx, dword [esi + 0x24]
add ebx, edi
sar edx, 2
lea eax, [edi + edx*4]
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x28], eax
mov dword [esi + 0x24], edi
mov ecx, dword [esi + 0x28]
mov edx, dword [esp + 0x3c]
add ebp, 4
mov dword [ecx], edx
add dword [esi + 0x28], 4
mov eax, dword [ebp]
mov dword [esp + 0x18], ebp
test eax, eax
jge 0x10008711
fld dword [esp + 0xe0]
fld dword [esp + 0x24]
fxch st(1)
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0x54]
mov edx, dword [esp + 0x8c]
mov dword [eax + ecx*4], edx
mov edx, dword [esp + 0x58]
mov eax, 1
add dword [esp + 0x4c], eax
add dword [esp + 0x1c], eax
add ecx, eax
mov eax, dword [esi + 0x1d8]
add edx, 4
mov dword [esp + 0x58], edx
lea edx, [eax - 1]
mov dword [esp + 0x2c], ecx
cmp ecx, edx
jb 0x1000811a
fstp st(1)
fld dword [0x1001c2cc]
fxch st(1)
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x1dc]
inc eax
dec ecx
mov dword [esp + 0x20], eax
cmp eax, ecx
jb 0x100080ba
fstp st(0)
mov eax, dword [esi + 0x1d8]
mov ecx, 1
sub eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x1dc]
sub eax, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x24], ecx
cmp dword [esi + 0x1f0], ecx
jbe 0x10008a34
lea ebp, [esi + 0x74]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x60]
mov edi, eax
shr eax, 1
mov dword [esp + 0x3c], ecx
shr ecx, 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x20], 0
je 0x10008a1c
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x40], 0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], 0
jbe 0x100089fa
mov eax, dword [ebp]
movzx ebx, byte [eax + ecx + 1]
mov dl, byte [eax + ecx]
add eax, ecx
mov byte [esp + 0x53], bl
movzx ebx, byte [eax + edi]
mov byte [esp + 0x47], bl
mov bl, byte [eax + edi + 1]
test dl, dl
jne 0x100088fd
cmp byte [esp + 0x53], dl
jne 0x100089d5
cmp byte [esp + 0x47], dl
jne 0x100089d5
test bl, bl
jne 0x100089d5
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x14]
mov byte [edx + eax], bl
jmp 0x100089e0
fstp st(0)
jmp 0x1000880f
cmp dl, 1
jne 0x100089d5
cmp byte [esp + 0x53], dl
jne 0x100089d5
cmp byte [esp + 0x47], dl
jne 0x100089d5
cmp bl, dl
jne 0x100089d5
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jbe 0x10008945
cmp byte [eax - 1], 2
jne 0x10008932
xor dl, dl
cmp byte [eax + edi - 1], 2
je 0x100089d5
test dl, dl
je 0x100089d5
lea ebx, [ebx + ebx + 2]
cmp ebx, edi
jae 0x100089d5
cmp byte [eax + 2], 2
jne 0x10008959
xor dl, dl
cmp byte [eax + edi + 2], 2
je 0x100089d5
test dl, dl
je 0x100089d5
mov ebx, dword [esp + 0x20]
test ebx, ebx
jbe 0x10008980
mov eax, dword [ebp]
sub eax, edi
add eax, ecx
cmp byte [eax], 2
jne 0x1000897a
xor dl, dl
cmp byte [eax + 1], 2
je 0x100089d5
test dl, dl
je 0x100089d5
lea eax, [ebx + ebx + 2]
cmp eax, dword [esp + 0x3c]
jae 0x100089d5
mov eax, dword [ebp]
add eax, ecx
cmp byte [eax + edi*2], 2
lea eax, [eax + edi*2]
jne 0x1000899e
xor dl, dl
cmp byte [eax + 1], 2
je 0x100089d5
test dl, dl
je 0x100089d5
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x14]
mov byte [eax + edx], 1
mov edx, dword [ebp]
mov al, 3
mov byte [ecx + edx], al
mov edx, dword [ebp]
mov byte [edx + ecx + 1], al
mov edx, dword [ebp]
add edx, ecx
mov byte [edx + edi], al
mov edx, dword [ebp]
add edx, ecx
mov byte [edx + edi + 1], al
jmp 0x100089e0
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x14]
mov byte [edx + eax], 2
mov eax, dword [esp + 0x2c]
inc dword [esp + 0x14]
inc eax
add ecx, 2
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x40]
jb 0x100088aa
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
add dword [esp + 0x18], ecx
inc eax
lea ecx, [edi + edi]
add dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x60]
jb 0x1000888b
mov eax, dword [esp + 0x24]
inc eax
add ebp, 0x10
mov dword [esp + 0x24], eax
cmp eax, dword [esi + 0x1f0]
jb 0x10008859
mov eax, dword [esi + 0x1d8]
mov ecx, dword [esi + 0x1dc]
dec eax
dec ecx
cmp dword [esi + 0x1f0], 0
mov edx, 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x24], 0
jbe 0x1000903d
lea eax, [esi + 0x74]
mov dword [esp + 0x1c], eax
jmp 0x10008a79
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x60]
mov eax, edx
shr eax, 1
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
mov dword [esp + 0xa8], eax
test edx, edx
jge 0x10008a96
fadd dword [0x1001c858]
fmul dword [esi + 0x1c8]
mov dword [esp + 0x20], 0
fst dword [esp + 0x54]
fld st(0)
fmul st(2)
fstp dword [esp + 0x18]
test ecx, ecx
jbe 0x1000900e
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
mov eax, ecx
imul eax, edx
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
test edx, edx
jge 0x10008ad7
fadd dword [0x1001c858]
fmul st(1)
mov dword [esp + 0x2c], 0
fstp dword [esp + 0x5c]
test ecx, ecx
jbe 0x10008ffb
mov ecx, 1
fstp st(1)
sub ecx, eax
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], ecx
jmp 0x10008b14
fld dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [esp + 0x4c]
mov al, byte [eax + edx]
cmp al, 1
je 0x10008b2d
cmp al, 4
jne 0x10008fd8
mov ecx, dword [esp + 0x2c]
mov edx, ecx
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
test edx, edx
jge 0x10008b45
fadd dword [0x1001c858]
mov eax, dword [esi + 0x1d8]
fmulp st(1)
mov edx, dword [esp + 0x48]
mov edi, eax
imul edi, dword [esp + 0x20]
fst dword [esp + 0x58]
add edi, ecx
imul edi, edx
mov ebp, edx
imul ebp, eax
mov eax, dword [esi + 0x114]
lea ecx, [edi + edx]
add ebp, ecx
mov ebx, ebp
lea eax, [eax + edi*4]
sub ebx, edx
cmp dword [eax], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
jge 0x10008bb5
mov ecx, dword [esi + 0x44]
fstp dword [esp + 0x30]
fld dword [esp + 0x5c]
lea edx, [esp + 0x30]
fstp dword [esp + 0x34]
push edx
fld dword [ecx + edi*4]
mov ecx, esi
fstp dword [esp + 0x3c]
call fcn.10005380
mov ecx, dword [esp + 0x10]
fld dword [esp + 0x58]
mov dword [ecx], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esi + 0x114]
add eax, edi
cmp dword [edx + eax*4], 0
lea eax, [edx + eax*4]
mov dword [esp + 0x10], eax
jge 0x10008c05
fadd dword [esp + 0x54]
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x44]
lea eax, [edi + edx]
fstp dword [esp + 0x30]
fld dword [esp + 0x5c]
fstp dword [esp + 0x34]
fld dword [ecx + eax*4]
lea eax, [esp + 0x30]
push eax
fstp dword [esp + 0x3c]
mov ecx, esi
call fcn.10005380
fld dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov edx, dword [esi + 0x114]
cmp dword [edx + ebp*4], 0
lea eax, [edx + ebp*4]
mov dword [esp + 0x10], eax
jge 0x10008c4c
fld dword [esp + 0x54]
mov eax, dword [esi + 0x44]
fadd st(1), st(0)
lea ecx, [esp + 0x30]
fxch st(1)
push ecx
mov ecx, esi
fstp dword [esp + 0x34]
fadd dword [esp + 0x60]
fstp dword [esp + 0x38]
fld dword [eax + ebp*4]
fstp dword [esp + 0x3c]
call fcn.10005380
mov edx, dword [esp + 0x10]
fld dword [esp + 0x58]
mov dword [edx], eax
mov eax, dword [esi + 0x114]
cmp dword [eax + ebx*4], 0
lea eax, [eax + ebx*4]
mov dword [esp + 0x10], eax
jge 0x10008c8f
mov ecx, dword [esi + 0x44]
fstp dword [esp + 0x30]
fld dword [esp + 0x5c]
lea edx, [esp + 0x30]
fadd dword [esp + 0x54]
push edx
fstp dword [esp + 0x38]
fld dword [ecx + ebx*4]
mov ecx, esi
fstp dword [esp + 0x3c]
call fcn.10005380
mov ecx, dword [esp + 0x10]
fld dword [esp + 0x58]
mov dword [ecx], eax
mov eax, dword [esi + 0x114]
mov edx, dword [eax + edi*4]
mov ecx, dword [esp + 0x48]
add ecx, edi
cmp dword [esp + 0x24], 0
mov dword [esp + 0x74], edx
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x78], edx
mov edx, dword [eax + ebp*4]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], eax
jbe 0x10008ed1
cmp dword [esp + 0x20], 0
jbe 0x10008ce8
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x1c]
sub edx, dword [esp + 0x40]
mov eax, dword [eax]
cmp byte [edx + eax], 2
jne 0x10008ce8
mov dword [esp + 0x14], 1
mov edx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
add edx, ebp
cmp edx, eax
jae 0x10008d0f
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
cmp byte [edx + ebp + 1], 2
jne 0x10008d0f
or dword [esp + 0x14], 2
mov edx, dword [esp + 0x20]
inc edx
cmp edx, dword [esp + 0x60]
jae 0x10008d2d
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
add edx, ebp
cmp byte [edx + eax], 2
jne 0x10008d2d
or dword [esp + 0x14], 4
cmp dword [esp + 0x2c], 0
jbe 0x10008d46
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
cmp byte [edx + ebp - 1], 2
jne 0x10008d46
or dword [esp + 0x14], 8
mov eax, dword [esp + 0xa8]
lea ebp, [edi + eax]
mov edi, dword [esi + 0x1d8]
imul edi, eax
add ebx, eax
add edi, ecx
mov dword [esp + 0x10], ebx
mov ebx, edi
sub ebx, dword [esp + 0x48]
test byte [esp + 0x14], 1
je 0x10008db1
mov eax, dword [esi + 0x114]
cmp dword [eax + ebp*4], 0
lea eax, [eax + ebp*4]
mov dword [esp + 0x28], eax
jge 0x10008db1
fadd dword [esp + 0x18]
mov ecx, dword [esi + 0x44]
lea edx, [esp + 0x30]
push edx
fstp dword [esp + 0x34]
fld dword [esp + 0x60]
fstp dword [esp + 0x38]
fld dword [ecx + ebp*4]
mov ecx, esi
fstp dword [esp + 0x3c]
call fcn.10005380
mov ecx, dword [esp + 0x28]
fld dword [esp + 0x58]
mov dword [ecx], eax
test byte [esp + 0x14], 2
je 0x10008dff
mov edx, dword [esi + 0x114]
cmp dword [edx + edi*4], 0
lea eax, [edx + edi*4]
mov dword [esp + 0x28], eax
jge 0x10008dff
fadd dword [esp + 0x54]
mov eax, dword [esi + 0x44]
lea ecx, [esp + 0x30]
push ecx
fstp dword [esp + 0x34]
mov ecx, esi
fld dword [esp + 0x60]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x38]
fld dword [eax + edi*4]
fstp dword [esp + 0x3c]
call fcn.10005380
mov edx, dword [esp + 0x28]
fld dword [esp + 0x58]
mov dword [edx], eax
test byte [esp + 0x14], 4
je 0x10008e53
mov eax, dword [esi + 0x114]
mov ecx, dword [esp + 0x10]
cmp dword [eax + ecx*4], 0
lea eax, [eax + ecx*4]
mov dword [esp + 0x28], eax
jge 0x10008e53
fadd dword [esp + 0x18]
mov edx, dword [esi + 0x44]
mov eax, ecx
lea ecx, [esp + 0x30]
fstp dword [esp + 0x30]
push ecx
fld dword [esp + 0x60]
mov ecx, esi
fadd dword [esp + 0x58]
fstp dword [esp + 0x38]
fld dword [edx + eax*4]
fstp dword [esp + 0x3c]
call fcn.10005380
mov edx, dword [esp + 0x28]
fld dword [esp + 0x58]
mov dword [edx], eax
test byte [esp + 0x14], 8
je 0x10008e9b
mov eax, dword [esi + 0x114]
cmp dword [eax + ebx*4], 0
lea eax, [eax + ebx*4]
mov dword [esp + 0x28], eax
jge 0x10008e9b
mov ecx, dword [esi + 0x44]
fstp dword [esp + 0x30]
fld dword [esp + 0x5c]
lea edx, [esp + 0x30]
fadd dword [esp + 0x18]
push edx
fstp dword [esp + 0x38]
fld dword [ecx + ebx*4]
mov ecx, esi
fstp dword [esp + 0x3c]
call fcn.10005380
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x10008e9d
fstp st(0)
mov eax, dword [esi + 0x114]
mov edx, dword [eax + ebp*4]
mov ecx, dword [eax + edi*4]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x88], ecx
mov ecx, dword [eax + edx*4]
mov edx, dword [eax + ebx*4]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], edx
jmp 0x10008ed3
fstp st(0)
mov eax, dword [esp + 0x14]
mov ebx, eax
imul ebx, ebx, 0x4c
cmp byte [esi + 0x1f4], 0
je 0x10008f04
add ebx, 0x100228f8
test eax, eax
jne 0x10008f22
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
add eax, ecx
test al, 1
je 0x10008f22
mov ebx, 0x10022db8
jmp 0x10008f22
add ebx, 0x10022e08
test eax, eax
jne 0x10008f22
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
add edx, eax
test dl, 1
je 0x10008f22
mov ebx, 0x100232c8
mov eax, dword [ebx]
test eax, eax
jl 0x10008fda
lea esp, [esp]
mov ecx, dword [esp + eax*4 + 0x74]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x2c]
cmp ecx, eax
ja 0x10008fbb
mov edx, dword [esi + 0x24]
sub eax, edx
sar eax, 2
lea eax, [eax + eax + 2]
test edx, edx
jne 0x10008f56
xor ecx, ecx
jmp 0x10008f5b
sub ecx, edx
sar ecx, 2
cmp ecx, eax
jae 0x10008fbb
lea ebp, [eax*4]
push ebp
mov dword [esp + 0x2c], ebp
call fcn.1000d98d
mov edx, dword [esi + 0x28]
mov edi, eax
mov eax, dword [esi + 0x24]
add esp, 4
mov ecx, edi
cmp eax, edx
je 0x10008f93
mov ebp, dword [eax]
mov dword [ecx], ebp
add eax, 4
add ecx, 4
cmp eax, edx
jne 0x10008f81
mov ebp, dword [esp + 0x28]
mov eax, dword [esi + 0x24]
test eax, eax
je 0x10008fa3
push eax
call fcn.1000da57
add esp, 4
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x24]
lea edx, [edi + ebp]
sar eax, 2
lea ecx, [edi + eax*4]
mov dword [esi + 0x2c], edx
mov dword [esi + 0x28], ecx
mov dword [esi + 0x24], edi
mov edx, dword [esi + 0x28]
mov eax, dword [esp + 0x10]
mov dword [edx], eax
add dword [esi + 0x28], 4
mov eax, dword [ebx + 4]
add ebx, 4
test eax, eax
jge 0x10008f30
jmp 0x10008fda
fstp st(0)
mov eax, dword [esp + 0x2c]
inc dword [esp + 0x4c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x40]
jb 0x10008b10
fld dword [0x1001c2cc]
fld dword [esp + 0x54]
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x60]
jb 0x10008ab8
mov eax, dword [esp + 0x24]
fstp st(0)
mov ecx, dword [esp + 0x48]
add dword [esp + 0x1c], 0x10
shr dword [esp + 0x40], 1
shr dword [esp + 0x60], 1
inc eax
lea edx, [ecx + ecx]
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], edx
cmp eax, dword [esi + 0x1f0]
jb 0x10008a71
pop edi
fstp st(0)
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret 4