Function at 0x10008880
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x94
mov eax, dword [0x1000f004]
xor eax, esp
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x98]
push ebx
mov ebx, ecx
mov dword [esp + 4], eax
push ebp
push esi
mov dword [esp + 0x10], edx
xor esi, esi
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0xd0]
mov dword [esp + 0x24], eax
mov eax, 1
mov dword [esp + 0x1c], ecx
shr ecx, 0x12
and ecx, 0x1f
mov dword [esp + 0x20], ebx
shl eax, cl
xor ecx, ecx
add eax, 2
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x30], eax
movzx eax, byte [ebx + 0xe]
cdq
push edi
mov edi, dword [ebx + 0x18]
mov dword [esp + 0x48], edx
mov edx, dword [ebx + 0x14]
add edi, edx
mov dword [esp + 0x30], eax
adc ecx, esi
add edi, esi
adc ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
xor eax, eax
mov ebp, dword [esp + 0x1c]
add ebp, dword [ebx + 0x98]
mov dword [esp + 0x1c], ebp
adc eax, dword [ebx + 0x9c]
mov ebp, dword [ebx + 0x18]
cmp eax, ecx
jl 0x10008941
jg 0x10008924
cmp dword [esp + 0x1c], edi
jbe 0x10008941
mov ecx, dword [ebx + 0x98]
xor eax, eax
mov edi, dword [esp + 0x10]
sub eax, ecx
add eax, edx
add eax, ebp
cmp eax, edi
cmovb edi, eax
mov dword [esp + 0x10], edi
jmp 0x1000894b
mov edi, dword [esp + 0x10]
mov ecx, dword [ebx + 0x98]
add edx, esi
adc esi, dword [esp + 0x30]
cmp esi, dword [ebx + 0x9c]
jg 0x10009a7d
jl 0x10008967
cmp edx, ecx
ja 0x10009a7d
cmp ebp, edi
jb 0x10009a7d
cmp dword [ebx + 0xa8], 0
jne 0x10009a87
mov ecx, dword [esp + 0x20]
mov eax, ecx
and eax, 8
je 0x1000899c
cmp dword [ebx + 0x7c], 0
jne 0x1000899c
mov edx, dword [esp + 0x40]
lea edx, [edx*2 + 0x80]
mov dword [esp + 0x40], edx
mov edx, dword [ebx + 0x7c]
mov ebp, ecx
and ebp, 0x40000004
mov dword [esp + 0x5c], ebp
test edx, edx
jne 0x10008ee6
test ebp, ebp
je 0x10008cd6
mov ecx, dword [esp + 0x14]
lea ebp, [ecx + edi*4]
mov dword [esp + 0x1c], ebp
test eax, eax
je 0x10008a00
mov dword [esp + 0x18], edi
mov esi, ecx
cmp ecx, ebp
jae 0x10008a1f
push 0
xor edx, edx
mov ecx, ebx
call fcn.10009c50
mov dword [esi], eax
add esi, 4
cmp eax, 0x80000000
je 0x100089f5
cmp esi, ebp
jb 0x100089d4
mov ecx, dword [esp + 0x14]
jmp 0x10008a1f
mov ecx, dword [esp + 0x14]
sub esi, ecx
sar esi, 2
jmp 0x10008a13
mov edx, ecx
mov ecx, ebx
push edi
call fcn.1000a340
mov ecx, dword [esp + 0x18]
add esp, 4
mov esi, eax
mov dword [esp + 0x18], esi
cmp esi, edi
jne 0x10009905
mov eax, dword [esp + 0x10]
lea edi, [ebx + 0x188]
mov ebx, dword [ebx + 0xa4]
cmp eax, 0x10
jae 0x10008a5b
test ebx, ebx
je 0x10008abe
mov ebp, dword [esp + 0x14]
push eax
mov edx, ebp
mov ecx, edi
call fcn.10008640
mov eax, dword [esp + 0x14]
add esp, 4
add edi, 0x60
sub ebx, 1
jne 0x10008a40
jmp 0x10008aba
test ebx, ebx
je 0x10008abe
mov eax, dword [esp + 0x20]
mov edx, 0x3c0000
and eax, 0x7c0000
mov ebp, 2
cmp edx, eax
sbb eax, eax
neg eax
mov dword [esp + 0x3c], eax
jmp 0x10008a84
mov ecx, dword [esp + 0x14]
mov esi, dword [edi]
mov edx, ecx
cmp esi, 8
mov ecx, edi
cmovg esi, ebp
push esi
call fcn.10008640
push dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
sub eax, esi
push eax
lea eax, [edx + esi*4]
push eax
push edi
call fcn.1000c5da
add esp, 0x14
add edi, 0x60
sub ebx, 1
jne 0x10008a80
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov ecx, edi
cmp edi, ebp
jae 0x10008af5
mov ebx, dword [esp + 0x40]
nop dword [eax]
mov esi, dword [ecx]
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jg 0x10008cc6
mov eax, dword [esp + 0x28]
add ecx, 4
lea esi, [esi + eax*2]
add esi, eax
mov dword [esp + 0x28], esi
cmp ecx, ebp
jb 0x10008ad0
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
cmp eax, ebx
mov ebx, dword [esp + 0x24]
jne 0x10009909
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x10008c22
mov esi, dword [ebx + 0xa4]
lea edi, [ebx + 0x188]
test esi, esi
je 0x10008c1e
lea edx, [ebx + 0x1b8]
mov eax, dword [edi]
dec esi
dec eax
cmp eax, 7
ja 0x10008c10
movups xmm0, xmmword [edx - 0x20]
movups xmmword [esp + 0x60], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [esp + 0x70], xmm0
mov eax, dword [esp + ecx*4 + 0x60]
movups xmm0, xmmword [edx]
movups xmmword [esp + 0x80], xmm0
movups xmm0, xmmword [edx + 0x10]
mov dword [edx - 0x20], eax
movups xmmword [esp + 0x90], xmm0
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 0x1c], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 4], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 0x18], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 8], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 0x14], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 0xc], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 0x10], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 0x10], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 0xc], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 0x14], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 8], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
and ecx, 7
mov dword [edx + 0x18], eax
mov eax, dword [esp + ecx*4 + 0x60]
mov dword [edx - 4], eax
mov eax, dword [esp + ecx*4 + 0x80]
inc ecx
mov dword [edx + 0x1c], eax
and ecx, 7
add edi, 0x60
add edx, 0x60
test esi, esi
jne 0x10008b33
mov edi, dword [esp + 0x14]
push ebp
mov edx, edi
mov ecx, ebx
call fcn.10007b30
mov ecx, dword [esp + 0x24]
add esp, 4
test cl, cl
jns 0x100099ad
mov ebp, dword [ebx]
test byte [ebp + 0xbc], 0x10
je 0x100099a9
mov esi, dword [esp + 0x18]
mov edi, esi
cmp dword [esp + 0x5c], 0
mov ebp, dword [ebp + 0xc0]
mov edx, dword [esp + 0x14]
lea eax, [esi + esi]
cmove edi, eax
movzx eax, byte [ebx + 0x143]
sub ebp, eax
add ebp, 0x7f
je 0x100099a7
test edi, edi
je 0x100099a7
nop
mov ecx, dword [edx]
dec edi
mov eax, ecx
sar eax, 0x17
movzx esi, al
test al, al
je 0x1000998e
lea eax, [esi + ebp]
test eax, eax
jle 0x1000998e
cmp esi, 0xff
je 0x10009980
cmp eax, 0xff
jge 0x10009980
shl eax, 0x17
xor eax, ecx
and eax, 0x7f800000
xor eax, ecx
jmp 0x10009990
mov eax, ecx
sub eax, edi
sar eax, 2
mov dword [esp + 0x18], eax
jmp 0x10008af9
test edx, edx
jne 0x10008ee6
test ebp, ebp
jne 0x10008ee8
mov ebp, dword [esp + 0x14]
lea edi, [edi*8]
add edi, ebp
mov dword [esp + 0x1c], edi
test eax, eax
je 0x10008d50
mov esi, dword [esp + 0x10]
mov dword [esp + 0x18], esi
mov esi, ebp
cmp ebp, edi
jae 0x10008d70
nop dword [eax]
push 0
xor edx, edx
mov ecx, ebx
call fcn.10009c50
mov dword [esi], eax
cmp eax, 0x80000000
je 0x10008d45
push 0
mov edx, 1
mov ecx, ebx
call fcn.10009c50
mov dword [esi + 4], eax
cmp eax, 0x80000000
je 0x10008d45
add esi, 8
cmp esi, edi
jb 0x10008d10
jmp 0x10008d70
mov eax, esi
sub eax, ebp
sar eax, 2
shr eax, 1
jmp 0x10008d60
push dword [esp + 0x10]
mov edx, ebp
mov ecx, ebx
call fcn.1000a340
add esp, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
cmp eax, ecx
jne 0x10009901
cmp dword [esp + 0x10], 0x10
jb 0x10008e33
push 0x17
call fcn.1000c812
add esp, 4
test eax, eax
je 0x10008e33
mov edx, dword [esp + 0x24]
add ebx, 0x188
mov ebp, dword [edx + 0xa4]
test ebp, ebp
je 0x10008df0
mov eax, dword [esp + 0x20]
and eax, 0x7c0000
cmp eax, 0x400000
sbb eax, eax
inc eax
mov edi, eax
cmp dword [ebx], 8
mov esi, 2
mov edx, dword [esp + 0x14]
mov ecx, ebx
cmovbe esi, dword [ebx]
push esi
call fcn.10008050
mov eax, dword [esp + 0x14]
sub eax, esi
push edi
push eax
mov eax, dword [esp + 0x20]
lea eax, [eax + esi*8]
push eax
push ebx
call section.asmcode
add esp, 0x14
add ebx, 0x60
sub ebp, 1
jne 0x10008db4
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
test byte [esp + 0x20], 0x10
je 0x10008e79
mov esi, ebp
cmp ebp, edi
jae 0x10008e9b
mov ecx, dword [esi]
mov eax, ecx
mov edx, dword [esi + 4]
sar eax, 1
sub edx, eax
add ecx, edx
mov dword [esi + 4], edx
mov dword [esi], ecx
add esi, 8
lea eax, [ecx + edx]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx*8]
add ecx, eax
mov dword [esp + 0x28], ecx
cmp esi, edi
jb 0x10008e05
jmp 0x10008e9b
mov edx, dword [esp + 0x24]
add ebx, 0x188
mov esi, dword [edx + 0xa4]
test esi, esi
je 0x10008e69
mov edi, dword [esp + 0x10]
nop dword [eax + eax]
push edi
mov edx, ebp
mov ecx, ebx
call fcn.10008050
add esp, 4
add ebx, 0x60
sub esi, 1
jne 0x10008e50
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
and eax, 7
mov dword [esp + 0x34], eax
jmp 0x10008df4
mov ecx, ebp
cmp ebp, edi
jae 0x10008e9b
mov esi, dword [esp + 0x28]
mov eax, dword [ecx]
lea eax, [eax + eax*2]
add eax, dword [ecx + 4]
add ecx, 8
add eax, esi
lea esi, [eax + esi*8]
cmp ecx, edi
jb 0x10008e83
mov dword [esp + 0x28], esi
mov ecx, ebp
cmp ebp, edi
jae 0x10008ec3
mov ebx, dword [esp + 0x40]
mov eax, dword [ecx]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jg 0x10008ed0
mov eax, dword [ecx + 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jg 0x10008ed0
add ecx, 0x40
cmp ecx, edi
jb 0x10008ea5
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
jmp 0x10008af9
mov edi, dword [esp + 0x14]
mov eax, ecx
sub eax, ebp
sar eax, 2
shr eax, 1
mov dword [esp + 0x18], eax
jmp 0x10008af9
test ebp, ebp
setne cl
test byte [esp + 0x20], 8
setne al
test al, cl
je 0x100090ee
mov edi, dword [esp + 0x14]
xor eax, eax
mov ebp, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
cmp dword [esp + 0x10], eax
je 0x10008af9
lea eax, [esp + 0x44]
xor edx, edx
push eax
mov ecx, ebx
call fcn.10009c50
mov edi, eax
cmp edi, 0x80000000
je 0x10008ec3
mov eax, dword [ebx + 0xa4]
lea esi, [ebx + 0x188]
test eax, eax
je 0x10008feb
mov ecx, dword [esi]
dec eax
mov dword [esp + 0x3c], eax
cmp ecx, 8
jle 0x10008f72
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
test cl, 1
je 0x10008f64
lea edx, [eax + eax]
mov dword [esi + 0x14], eax
sub edx, ebx
xor ebx, ebx
jmp 0x10008f80
lea edx, [eax + eax*2]
mov dword [esi + 0x14], eax
sub edx, ebx
sar edx, 1
xor ebx, ebx
jmp 0x10008f80
mov eax, dword [esp + 0x34]
mov edx, dword [esi + eax*4 + 0x10]
lea ebx, [ecx + eax]
and ebx, 7
mov ebp, dword [esi + 8]
movsx eax, dx
cmp edx, eax
je 0x10008fa5
mov ecx, edx
movzx eax, dx
imul eax, ebp
sar ecx, 9
and ecx, 0xffffff80
imul ecx, ebp
sar eax, 9
inc eax
add eax, ecx
sar eax, 1
jmp 0x10008fb2
mov eax, ebp
imul eax, edx
add eax, 0x200
sar eax, 0xa
lea ecx, [eax + edi]
test edx, edx
je 0x10008fce
test edi, edi
je 0x10008fce
mov eax, dword [esi + 4]
xor edx, edi
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, ebp
mov dword [esi + 8], eax
mov eax, dword [esp + 0x3c]
mov edi, ecx
mov dword [esi + ebx*4 + 0x10], ecx
add esi, 0x60
test eax, eax
jne 0x10008f41
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
inc eax
and eax, 7
test byte [esp + 0x20], 0x40
mov dword [esp + 0x34], eax
je 0x100090a6
mov edx, dword [ebx + 0x150]
add edx, dword [ebx + 0x148]
mov esi, dword [ebx + 0x158]
mov dword [ebx + 0x148], edx
movsx eax, si
sar edx, 0x10
cmp esi, eax
je 0x1000903f
mov ecx, esi
movzx eax, si
imul eax, edx
sar ecx, 9
and ecx, 0xffffff80
imul ecx, edx
sar eax, 9
inc eax
add eax, ecx
sar eax, 1
jmp 0x1000904c
mov eax, esi
imul eax, edx
add eax, 0x200
sar eax, 0xa
neg eax
test dword [esp + 0x20], 0x20000000
je 0x10009092
test edx, edx
jns 0x10009092
test eax, eax
je 0x10009092
cmp eax, esi
jne 0x1000907e
test eax, eax
jns 0x1000907d
mov ecx, dword [esp + 0x44]
inc eax
mov edx, eax
sub edx, ecx
sub ecx, eax
mov dword [ebx + 0x158], edx
add edi, ecx
jmp 0x100090aa
dec eax
mov ecx, dword [esp + 0x44]
mov edx, eax
sub edx, ecx
sub ecx, eax
mov dword [ebx + 0x158], edx
add edi, ecx
jmp 0x100090aa
mov ecx, dword [esp + 0x44]
mov edx, ecx
neg edx
sub ecx, eax
mov dword [ebx + 0x158], edx
add edi, ecx
jmp 0x100090aa
add edi, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
lea ecx, [edi + eax*2]
add ecx, eax
mov eax, edi
cdq
xor eax, edx
mov dword [esp + 0x28], ecx
sub eax, edx
cmp eax, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
jg 0x10008ec7
inc eax
mov dword [ebp], edi
add ebp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
cmp eax, dword [esp + 0x10]
jb 0x10008f15
mov edi, dword [esp + 0x14]
jmp 0x10008af9
test edx, edx
je 0x100098f2
test ebp, ebp
jne 0x100098f2
mov ebx, dword [esp + 0x10]
xor eax, eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x18], eax
test ebx, ebx
je 0x10008afd
mov edi, dword [esp + 0x24]
mov dword [esp + 0x54], 0x400
lea eax, [esp + 0x44]
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 0x38], ebp
push eax
xor edx, edx
mov dword [esp + 0x34], ebx
mov ecx, edi
call fcn.10009c50
mov esi, eax
mov dword [esp + 0x1c], esi
cmp esi, 0x80000000
je 0x10008ec3
lea eax, [esp + 0x48]
mov ecx, edi
push eax
lea edx, [ebp + 1]
call fcn.10009c50
mov edi, eax
mov dword [esp + 0x2c], edi
cmp edi, 0x80000000
je 0x10008ec3
mov eax, dword [esp + 0x20]
and eax, 0x20
mov dword [esp + 0x50], eax
je 0x100093c2
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
add ebp, esi
add ebx, edi
mov dword [esp + 0x38], ebp
lea edx, [eax + 0x188]
mov dword [esp + 0x30], ebx
mov eax, dword [eax + 0xa4]
test eax, eax
je 0x100093ab
nop
dec eax
mov dword [esp + 0x38], eax
mov eax, dword [edx]
test eax, eax
jle 0x1000927a
cmp eax, 8
jle 0x100091ee
mov ecx, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
mov edi, dword [edx + 0x30]
test al, 1
je 0x100091dd
lea esi, [ecx + ecx]
add edi, edi
sub esi, ebx
sub edi, dword [edx + 0x34]
jmp 0x100091fa
lea esi, [ecx + ecx*2]
lea edi, [edi + edi*2]
sub esi, ebx
sub edi, dword [edx + 0x34]
sar esi, 1
sar edi, 1
jmp 0x100091fa
mov eax, dword [esp + 0x34]
mov esi, dword [edx + eax*4 + 0x10]
mov edi, dword [edx + eax*4 + 0x30]
mov ebx, dword [edx + 8]
movsx eax, si
cmp esi, eax
je 0x1000921f
mov ecx, esi
movzx eax, si
sar ecx, 9
and ecx, 0xffffff80
imul ecx, ebx
imul ebx, eax
sar ebx, 9
inc ebx
add ebx, ecx
sar ebx, 1
jmp 0x1000922b
imul ebx, esi
add ebx, 0x200
sar ebx, 0xa
mov esi, dword [edx + 0xc]
add ebp, ebx
movsx eax, di
cmp edi, eax
je 0x1000925f
mov ebx, dword [esp + 0x30]
mov ecx, edi
sar ecx, 9
and ecx, 0xffffff80
movzx eax, di
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
add ebx, esi
mov dword [esp + 0x30], ebx
jmp 0x10009394
mov ebx, dword [esp + 0x30]
imul esi, edi
add esi, 0x200
sar esi, 0xa
add ebx, esi
mov dword [esp + 0x30], ebx
jmp 0x10009394
cmp eax, 0xffffffff
jne 0x100092fa
mov edi, dword [edx + 0x10]
mov esi, dword [edx + 8]
movsx eax, di
cmp edi, eax
je 0x100092a7
mov ecx, edi
movzx eax, di
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x100092b3
imul esi, edi
add esi, 0x200
sar esi, 0xa
add ebp, esi
mov esi, dword [edx + 0xc]
movsx eax, bp
cmp ebp, eax
je 0x100092e3
mov ecx, ebp
movzx eax, bp
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
add ebx, esi
mov dword [esp + 0x30], ebx
jmp 0x10009394
imul esi, ebp
add esi, 0x200
sar esi, 0xa
add ebx, esi
mov dword [esp + 0x30], ebx
jmp 0x10009394
mov esi, dword [edx + 0x30]
mov ecx, dword [edx + 0xc]
movsx eax, si
cmp esi, eax
je 0x10009320
movzx eax, si
imul eax, ecx
sar esi, 9
and esi, 0xffffff80
imul ecx, esi
sar eax, 9
inc ecx
add ecx, eax
sar ecx, 1
jmp 0x1000932c
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
mov esi, dword [edx + 8]
add ebx, ecx
cmp dword [edx], 0xfffffffd
mov dword [esp + 0x30], ebx
jne 0x10009364
mov edi, dword [edx + 0x10]
movsx eax, di
cmp edi, eax
je 0x1000935f
mov ecx, edi
movzx eax, di
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x10009392
imul esi, edi
jmp 0x10009389
movsx eax, bx
cmp ebx, eax
je 0x10009386
mov ecx, ebx
movzx eax, bx
sar ecx, 9
and ecx, 0xffffff80
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x10009392
imul esi, ebx
add esi, 0x200
sar esi, 0xa
add ebp, esi
mov eax, dword [esp + 0x38]
add edx, 0x60
test eax, eax
jne 0x100091b0
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x38], ebp
test byte [esp + 0x20], 0x10
je 0x100093c2
mov eax, ebp
sar eax, 1
sub ebx, eax
add ebp, ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], ebp
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + 0xa4]
lea eax, [esi + 0x188]
test ecx, ecx
je 0x100096fe
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x34]
mov edx, dword [eax]
dec ecx
mov dword [esp + 0x58], ecx
test edx, edx
jle 0x10009507
cmp edx, 8
jle 0x10009431
mov ecx, dword [eax + 0x10]
mov edi, dword [eax + 0x30]
test dl, 1
je 0x1000940e
lea esi, [ecx + ecx]
add edi, edi
sub esi, dword [eax + 0x14]
sub edi, dword [eax + 0x34]
jmp 0x1000941e
lea esi, [ecx + ecx*2]
sub esi, dword [eax + 0x14]
lea edi, [edi + edi*2]
sub edi, dword [eax + 0x34]
sar esi, 1
sar edi, 1
mov dword [eax + 0x14], ecx
mov ecx, dword [eax + 0x30]
mov dword [eax + 0x34], ecx
mov dword [esp + 0x1c], 0
jmp 0x10009442
mov esi, dword [eax + ebp*4 + 0x10]
add edx, ebp
mov edi, dword [eax + ebp*4 + 0x30]
and edx, 7
mov dword [esp + 0x1c], edx
movsx ecx, si
cmp esi, ecx
je 0x10009466
mov edx, esi
movzx ecx, si
imul ecx, dword [eax + 8]
sar edx, 9
and edx, 0xffffff80
imul edx, dword [eax + 8]
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x10009475
mov ecx, esi
imul ecx, dword [eax + 8]
add ecx, 0x200
sar ecx, 0xa
add ecx, ebx
mov dword [esp + 0x4c], ecx
movsx ecx, di
cmp edi, ecx
je 0x1000949f
mov edx, edi
movzx ecx, di
imul ecx, dword [eax + 0xc]
sar edx, 9
and edx, 0xffffff80
imul edx, dword [eax + 0xc]
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x100094ae
mov ecx, edi
imul ecx, dword [eax + 0xc]
add ecx, 0x200
sar ecx, 0xa
mov edx, dword [esp + 0x2c]
add ecx, edx
mov dword [esp + 0x2c], ecx
test esi, esi
je 0x100094cf
test ebx, ebx
je 0x100094cf
mov ecx, dword [eax + 4]
xor esi, ebx
sar esi, 0x1f
xor ecx, esi
sub ecx, esi
add dword [eax + 8], ecx
test edi, edi
je 0x100094e6
test edx, edx
je 0x100094e6
mov ecx, dword [eax + 4]
xor edi, edx
sar edi, 0x1f
xor ecx, edi
sub ecx, edi
add dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x4c]
mov ebx, edx
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [esp + 0x2c]
mov edi, edx
mov dword [esp + 0x2c], edi
mov dword [eax + ecx*4 + 0x30], edx
jmp 0x100096df
cmp edx, 0xffffffff
jne 0x100095f1
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 8]
movsx ecx, di
cmp edi, ecx
je 0x10009538
mov edx, edi
movzx ecx, di
imul ecx, esi
sar edx, 9
and edx, 0xffffff80
imul edx, esi
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x10009546
mov ecx, edi
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
lea esi, [ecx + ebx]
test edi, edi
je 0x10009575
test ebx, ebx
je 0x10009575
xor edi, ebx
mov edx, 0x400
sar edi, 0x1f
mov ecx, edi
xor ecx, dword [eax + 8]
add ecx, dword [eax + 4]
sub ecx, edi
cmp ecx, 0x400
cmovg ecx, edx
xor ecx, edi
sub ecx, edi
mov dword [eax + 8], ecx
mov edi, dword [eax + 0xc]
mov ebx, esi
movsx ecx, si
cmp esi, ecx
je 0x1000959c
mov edx, esi
movzx ecx, si
imul ecx, edi
sar edx, 9
and edx, 0xffffff80
imul edx, edi
sar ecx, 9
inc ecx
add ecx, edx
sar ecx, 1
jmp 0x100095aa
mov ecx, esi
imul ecx, edi
add ecx, 0x200
sar ecx, 0xa
mov edx, dword [esp + 0x2c]
add ecx, edx
mov dword [esp + 0x4c], ecx
test esi, esi
je 0x100095e3
test edx, edx
je 0x100095e3
xor esi, edx
mov edx, 0x400
sar esi, 0x1f
mov ecx, esi
xor ecx, edi
add ecx, dword [eax + 4]
sub ecx, esi
cmp ecx, 0x400
cmovg ecx, edx
xor ecx, esi
sub ecx, esi
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x4c]
mov edi, ecx
mov dword [eax + 0x10], ecx
mov dword [esp + 0x2c], edi
jmp 0x100096df
mov edi, dword [eax + 0x30]
mov esi, dword [eax + 0xc]
movsx ecx, di
cmp edi, ecx
je 0x1000961b
mov edx, edi
movzx ecx, di
sar edx, 9
and edx, 0xffffff80
imul ecx, esi
imul edx, esi
sar ecx, 9
inc edx
add ecx, edx
mov edx, dword [eax]
sar ecx, 1
jmp 0x10009629
mov ecx, edi
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
mov esi, dword [esp + 0x2c]
add esi, ecx
test edi, edi
je 0x1000965c
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x1000965c
xor edi, ecx
sar edi, 0x1f
mov ecx, edi
xor ecx, dword [eax + 0xc]
add ecx, dword [eax + 4]
sub ecx, edi
cmp ecx, 0x400
cmovg ecx, dword [esp + 0x54]
xor ecx, edi
sub ecx, edi
mov dword [eax + 0xc], ecx
mov edi, esi
mov dword [esp + 0x2c], edi
cmp edx, 0xfffffffd
jne 0x1000966d
mov esi, dword [eax + 0x10]
mov dword [eax + 0x10], edi
mov edx, dword [eax + 8]
movsx ecx, si
cmp esi, ecx
je 0x10009697
mov edx, esi
movzx ecx, si
imul ecx, dword [eax + 8]
sar edx, 9
and edx, 0xffffff80
imul edx, dword [eax + 8]
sar ecx, 9
inc edx
add ecx, edx
mov edx, dword [eax + 8]
sar ecx, 1
jmp 0x100096a5
mov ecx, esi
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
add ecx, ebx
mov dword [esp + 0x4c], ecx
test esi, esi
je 0x100096da
test ebx, ebx
je 0x100096da
xor esi, ebx
sar esi, 0x1f
mov ecx, esi
xor ecx, edx
mov edx, 0x400
add ecx, dword [eax + 4]
sub ecx, esi
cmp ecx, 0x400
cmovg ecx, edx
xor ecx, esi
sub ecx, esi
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov ebx, ecx
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x58]
add eax, 0x60
test ecx, ecx
jne 0x100093e2
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x20]
and eax, 7
cmp dword [esp + 0x50], 0
mov dword [esp + 0x34], eax
jne 0x10009732
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
add ebp, ecx
add ebx, edi
test dl, 0x10
je 0x1000973f
mov eax, ebp
sar eax, 1
sub ebx, eax
add ebp, ebx
test dl, 0x10
je 0x1000973f
mov eax, ecx
sar eax, 1
sub edi, eax
add ecx, edi
test dl, 0x40
je 0x1000988b
mov edx, dword [esi + 0x150]
mov eax, ebp
add edx, dword [esi + 0x148]
sub eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x148], edx
mov esi, dword [esi + 0x158]
sar edx, 0x10
movsx eax, word [eax + 0x158]
cmp esi, eax
mov eax, esi
je 0x10009799
sar eax, 9
and eax, 0xffffff80
movzx ecx, si
imul eax, edx
imul ecx, edx
inc eax
sar ecx, 9
add eax, ecx
sar eax, 1
jmp 0x100097a4
imul eax, edx
add eax, 0x200
sar eax, 0xa
mov ecx, dword [esp + 0x20]
neg eax
and ecx, 0x20000000
mov dword [esp + 0x50], ecx
je 0x100097d8
test edx, edx
jns 0x100097d8
test eax, eax
je 0x100097d8
cmp eax, esi
jne 0x100097d0
test eax, eax
jns 0x100097cf
inc eax
mov ecx, eax
sub ecx, dword [esp + 0x1c]
jmp 0x100097de
dec eax
mov ecx, eax
sub ecx, dword [esp + 0x1c]
jmp 0x100097de
mov ecx, dword [esp + 0x1c]
neg ecx
mov edx, dword [esp + 0x24]
sub ebp, eax
mov dword [edx + 0x158], ecx
mov ecx, ebx
sub ecx, edi
mov edi, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x48], ecx
mov edx, dword [edi + 0x154]
add edx, dword [edi + 0x14c]
mov esi, dword [edi + 0x15c]
movsx eax, si
mov dword [edi + 0x14c], edx
sar edx, 0x10
cmp esi, eax
mov eax, esi
je 0x10009839
sar eax, 9
movzx ecx, si
and eax, 0xffffff80
imul ecx, edx
imul eax, edx
sar ecx, 9
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x1c]
sar eax, 1
jmp 0x10009844
imul eax, edx
add eax, 0x200
sar eax, 0xa
neg eax
cmp dword [esp + 0x50], 0
je 0x1000987f
test edx, edx
jns 0x1000987f
test eax, eax
je 0x1000987f
cmp eax, esi
jne 0x1000986f
test eax, eax
jns 0x1000986e
inc eax
mov ecx, eax
sub ecx, dword [esp + 0x1c]
sub ebx, eax
mov dword [edi + 0x15c], ecx
jmp 0x1000988f
dec eax
mov ecx, eax
sub ecx, dword [esp + 0x1c]
sub ebx, eax
mov dword [edi + 0x15c], ecx
jmp 0x1000988f
neg ecx
sub ebx, eax
mov dword [edi + 0x15c], ecx
jmp 0x1000988f
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x10008ec3
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x10008ec3
mov ecx, dword [esp + 0x28]
lea eax, [ebx + ebp]
lea eax, [eax + ebp*2]
lea eax, [eax + ecx*8]
add ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], ecx
mov dword [eax], ebp
mov dword [eax + 4], ebx
add eax, 8
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, ebx
jb 0x10009124
mov edi, dword [esp + 0x14]
jmp 0x10008afd
mov edi, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x10008af9
mov edi, ebp
jmp 0x1000990d
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test byte [esp + 0x20], 4
mov eax, 0
sete al
lea eax, [eax*4 + 4]
imul eax, ecx
push eax
push 0
push edi
call sub.VCRUNTIME140.dll_memset
mov ebp, dword [esp + 0x1c]
add esp, 0xc
cmp dword [ebx + 0x11c], 0
mov dword [ebx + 0xa8], 1
mov dword [esp + 0x18], ebp
je 0x10008b0d
cmp dword [ebx + 0x128], 0x10
jae 0x1000995f
add dword [ebx + 0x11c], 2
xorps xmm0, xmm0
movups xmmword [ebx + 0x114], xmm0
movq qword [ebx + 0x124], xmm0
mov dword [ebx + 0x12c], 0
jmp 0x10008b0d
mov eax, ecx
and eax, 0x80000000
xor eax, 0x7f800000
jmp 0x10009990
xor eax, eax
mov dword [edx], eax
add edx, 4
test edi, edi
jne 0x10008c80
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
jmp 0x100099a9
mov edi, edx
mov ebp, dword [esp + 0x18]
test ecx, 0x40000000
je 0x100099d6
lea ecx, [edi + ebp*8]
mov esi, ebp
lea edx, [edi + ebp*4]
test ebp, ebp
je 0x100099d6
mov eax, dword [edx - 4]
lea edx, [edx - 4]
mov dword [ecx - 4], eax
lea ecx, [ecx - 8]
mov eax, dword [edx]
mov dword [ecx], eax
sub esi, 1
jne 0x100099c1
mov eax, dword [esp + 0x28]
mov edi, ebp
add edi, dword [ebx + 0x98]
mov esi, 0
mov dword [ebx + 0x98], edi
adc esi, dword [ebx + 0x9c]
cmp dword [ebx + 0xa8], 0
mov dword [ebx + 0x9c], esi
mov dword [ebx + 0xd0], eax
jne 0x10009a79
movzx eax, byte [ebx + 0xe]
xor ecx, ecx
add ecx, dword [ebx + 0x14]
cdq
adc eax, 0
add ecx, dword [ebx + 0x18]
adc eax, 0
cmp edi, ecx
jne 0x10009a79
cmp esi, eax
jne 0x10009a79
mov eax, dword [esp + 0x28]
cmp eax, dword [ebx + 0x20]
jne 0x10009a47
cmp dword [ebx + 0x11c], 0
je 0x10009a79
mov eax, dword [ebx + 0xd4]
cmp eax, dword [ebx + 0xd8]
je 0x10009a79
test byte [esp + 0x20], 4
mov eax, 0
sete al
lea eax, [eax*4 + 4]
imul eax, dword [esp + 0x10]
push eax
push 0
push dword [esp + 0x1c]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebx + 0xa8], 1
mov eax, ebp
jmp 0x10009ace
mov dword [ebx + 0xa8], 1
mov eax, dword [ebx]
cmp dword [eax + 0xc4], 1
je 0x10009aa9
cmp dword [eax + 0x1c], 1
je 0x10009aa9
test byte [esp + 0x20], 4
jne 0x10009aa9
lea eax, [edi*8]
push eax
jmp 0x10009ab1
lea ecx, [edi*4]
push ecx
push 0
push dword [esp + 0x1c]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, edi
add dword [ebx + 0x98], edi
adc dword [ebx + 0x9c], 0
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10001330
add esp, 0x94
ret