Function at 0x1007b160
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [0x100e3008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4c], eax
mov eax, dword [ecx + 0x178]
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x48], edx
push ebx
mov eax, dword [ecx + eax*4 + 0x184]
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x50], eax
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0xac]
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0xa8]
mov dword [ebp - 0x6c], ecx
mov ecx, edx
shr ecx, 0x12
mov dword [ebp - 0x64], edx
and ecx, 0x1f
mov edx, 1
mov dword [ebp - 0x58], ebx
shl edx, cl
mov ecx, dword [ebp - 0x4c]
add edx, 2
mov dword [ebp - 0x7c], edx
add ecx, edi
mov edx, dword [eax + 0x14]
lea eax, [esi + edx]
cmp ecx, eax
jbe 0x1007b1e1
mov ecx, esi
sub ecx, edi
add ecx, edx
mov dword [ebp - 0x4c], ecx
jmp 0x1007b1e4
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x50]
cmp dword [edi + 0x88], ebx
je 0x1007b23f
mov eax, dword [ebp - 0x88]
cmp dword [eax + 0xa4], 1
je 0x1007b214
cmp dword [eax + 0x1c], 1
je 0x1007b214
test byte [ebp - 0x64], 4
jne 0x1007b214
lea eax, [ecx*8]
push eax
jmp 0x1007b218
shl ecx, 2
push ecx
push 0
push dword [ebp - 0x48]
call fcn.1009e470
mov eax, dword [ebp - 0x4c]
add esp, 0xc
add dword [edi + 0xa8], eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1009bd8a
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x64]
and eax, 8
je 0x1007b254
cmp dword [edi + 0x74], ebx
jne 0x1007b254
mov edx, dword [ebp - 0x7c]
add edx, edx
mov dword [ebp - 0x7c], edx
mov esi, dword [ebp - 0x64]
mov edx, dword [edi + 0x74]
and esi, 0x40000004
mov dword [ebp - 0x98], esi
test edx, edx
jne 0x1007b62f
test esi, esi
je 0x1007b414
mov edx, dword [ebp - 0x48]
lea edi, [edx + ecx*4]
test eax, eax
je 0x1007b2bd
mov dword [ebp - 0x54], ecx
mov esi, edx
cmp edx, edi
jae 0x1007b2cf
nop dword [eax]
mov ecx, dword [ebp - 0x50]
xor edx, edx
push 0
call fcn.100821a0
mov dword [esi], eax
add esi, 4
cmp eax, 0x80000000
je 0x1007b2ae
cmp esi, edi
jb 0x1007b290
jmp 0x1007b2cc
mov edx, dword [ebp - 0x48]
mov eax, esi
sub eax, edx
sar eax, 2
mov dword [ebp - 0x54], eax
jmp 0x1007b2cf
push ecx
mov ecx, dword [ebp - 0x50]
call fcn.10082890
add esp, 4
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
mov edi, edx
mov dword [ebp - 0x60], edx
lea ecx, [edx + eax*4]
cmp edx, ecx
jae 0x1007c05f
mov edx, dword [ebp - 0x50]
lea eax, [edx + 0x160]
mov dword [ebp - 0x68], eax
nop
mov ecx, dword [edi]
mov esi, eax
mov eax, dword [edx + 0x84]
mov dword [ebp - 0x5c], ecx
test eax, eax
je 0x1007b3b6
mov ebx, dword [esi]
dec eax
mov dword [ebp - 0x70], eax
cmp ebx, 8
jle 0x1007b336
mov edi, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
test bl, 1
je 0x1007b327
lea edx, [eax + eax]
mov dword [esi + 0x14], eax
sub edx, edi
xor edi, edi
jmp 0x1007b343
mov edx, eax
mov dword [esi + 0x14], eax
sub edx, edi
sar edx, 1
add edx, eax
xor edi, edi
jmp 0x1007b343
mov eax, dword [ebp - 0x58]
mov edx, dword [esi + eax*4 + 0x10]
lea edi, [ebx + eax]
and edi, 7
mov ebx, dword [esi + 8]
movsx eax, dx
cmp edx, eax
je 0x1007b36b
mov ecx, edx
movzx eax, dx
sar ecx, 9
and ecx, 0xffffff80
imul eax, ebx
imul ecx, ebx
sar eax, 9
inc ecx
add eax, ecx
mov ecx, dword [ebp - 0x5c]
sar eax, 1
jmp 0x1007b378
mov eax, ebx
imul eax, edx
add eax, 0x200
sar eax, 0xa
add eax, ecx
mov dword [ebp - 0x74], eax
test edx, edx
je 0x1007b399
test ecx, ecx
je 0x1007b399
mov eax, dword [esi + 4]
xor edx, ecx
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, ebx
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x74]
mov dword [esi + edi*4 + 0x10], eax
mov ecx, eax
mov dword [ebp - 0x5c], eax
add esi, 0x60
mov eax, dword [ebp - 0x70]
test eax, eax
jne 0x1007b305
mov ebx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x60]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [ebp - 0x7c]
jg 0x1007b3fc
mov eax, dword [ebp - 0x6c]
inc ebx
mov edx, dword [ebp - 0x4c]
and ebx, 7
mov dword [edi], ecx
add edi, 4
mov dword [ebp - 0x58], ebx
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x60], edi
add ecx, eax
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 0x48]
lea eax, [ecx + edx*4]
mov edx, dword [ebp - 0x50]
cmp edi, eax
mov eax, dword [ebp - 0x68]
jb 0x1007b2f0
mov edi, edx
mov edx, ecx
jmp 0x1007c064
mov edx, dword [ebp - 0x48]
mov eax, edi
mov ebx, dword [ebp - 0x58]
sub eax, edx
mov edi, dword [ebp - 0x50]
sar eax, 2
mov dword [ebp - 0x54], eax
jmp 0x1007c067
test edx, edx
jne 0x1007b62f
test esi, esi
jne 0x1007b631
mov edx, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x50]
lea edi, [edx + ecx*8]
mov dword [ebp - 0x74], edi
test eax, eax
je 0x1007b486
mov dword [ebp - 0x54], ecx
mov esi, edx
cmp edx, edi
jae 0x1007b497
nop dword [eax]
push 0
xor edx, edx
mov ecx, ebx
call fcn.100821a0
mov dword [esi], eax
cmp eax, 0x80000000
je 0x1007b475
push 0
mov edx, 1
mov ecx, ebx
call fcn.100821a0
mov dword [esi + 4], eax
cmp eax, 0x80000000
je 0x1007b475
add esi, 8
cmp esi, edi
jb 0x1007b440
jmp 0x1007b494
mov edx, dword [ebp - 0x48]
mov eax, esi
sub eax, edx
sar eax, 2
shr eax, 1
mov dword [ebp - 0x54], eax
jmp 0x1007b497
push ecx
mov ecx, ebx
call fcn.10082890
add esp, 4
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x48]
mov esi, dword [ebx + 0x84]
lea ecx, [ebx + 0x160]
test esi, esi
je 0x1007b573
mov edi, dword [ebp - 0x64]
and edi, 0x7c0000
jmp 0x1007b4b9
mov edx, dword [ebp - 0x48]
dec esi
cmp edi, 0x400000
jb 0x1007b4cf
push dword [ebp - 0x4c]
call fcn.1007c2e0
jmp 0x1007b562
test esi, esi
je 0x1007b557
mov eax, dword [ecx]
cmp eax, 0x11
jne 0x1007b512
mov edx, dword [ecx + 0x60]
cmp edx, eax
jne 0x1007b4f9
push dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
call fcn.1007ce90
add esp, 4
dec esi
add ecx, 0x60
jmp 0x1007b565
cmp edx, 0x12
jne 0x1007b512
push dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
call fcn.1007cd40
add esp, 4
dec esi
add ecx, 0x60
jmp 0x1007b565
cmp eax, 0x12
jne 0x1007b530
cmp dword [ecx + 0x60], eax
jne 0x1007b530
push dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
call fcn.1007cfd0
add esp, 4
dec esi
add ecx, 0x60
jmp 0x1007b565
dec eax
cmp eax, 6
ja 0x1007b557
mov eax, dword [ecx + 0x60]
cmp eax, 1
jl 0x1007b557
cmp eax, 7
jg 0x1007b557
push dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
call fcn.1007d120
add esp, 4
dec esi
add ecx, 0x60
jmp 0x1007b565
push dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
call fcn.1007c8e0
add esp, 4
add ecx, 0x60
test esi, esi
jne 0x1007b4b6
mov edi, dword [ebp - 0x74]
test byte [ebp - 0x64], 0x10
mov edx, dword [ebp - 0x48]
je 0x1007b5ae
mov esi, edx
cmp edx, edi
jae 0x1007b5d1
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]
mov edx, dword [ebp - 0x6c]
lea eax, [eax + ecx*2]
lea eax, [eax + edx*8]
add edx, eax
mov dword [ebp - 0x6c], edx
cmp esi, edi
jb 0x1007b582
jmp 0x1007b5ce
mov ecx, edx
cmp edx, edi
jae 0x1007b5d1
mov edx, dword [ebp - 0x6c]
mov eax, dword [ecx]
lea eax, [eax + eax*2]
add eax, dword [ecx + 4]
add ecx, 8
add eax, edx
lea edx, [eax + edx*8]
cmp ecx, edi
jb 0x1007b5b7
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x48]
mov ecx, edx
cmp edx, edi
jae 0x1007b601
mov ebx, dword [ebp - 0x7c]
nop word [eax + eax]
mov eax, dword [ecx]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jg 0x1007b612
mov eax, dword [ecx + 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jg 0x1007b612
add ecx, 0x40
cmp ecx, edi
jb 0x1007b5e0
mov edx, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x54]
and ebx, 7
mov edi, dword [ebp - 0x50]
jmp 0x1007c067
mov edx, dword [ebp - 0x48]
mov eax, ecx
mov ebx, dword [ebp - 0x4c]
sub eax, edx
mov edi, dword [ebp - 0x50]
sar eax, 2
shr eax, 1
and ebx, 7
mov dword [ebp - 0x54], eax
jmp 0x1007c067
test esi, esi
setne cl
test byte [ebp - 0x64], 8
setne al
test al, cl
je 0x1007b84d
mov ecx, dword [ebp - 0x4c]
xor eax, eax
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x54], eax
test ecx, ecx
je 0x1007c05b
nop dword [eax]
lea eax, [ebp - 0x84]
xor edx, edx
push eax
mov ecx, edi
call fcn.100821a0
mov edi, eax
cmp edi, 0x80000000
je 0x1007c048
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x84]
lea esi, [ecx + 0x160]
test eax, eax
je 0x1007b740
mov ecx, dword [esi]
dec eax
mov dword [ebp - 0x60], eax
cmp ecx, 8
jle 0x1007b6c5
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
test cl, 1
je 0x1007b6b7
lea edx, [eax + eax]
mov dword [esi + 0x14], eax
sub edx, ebx
xor ebx, ebx
jmp 0x1007b6ce
lea edx, [eax + eax*2]
mov dword [esi + 0x14], eax
sub edx, ebx
sar edx, 1
xor ebx, ebx
jmp 0x1007b6ce
mov edx, dword [esi + ebx*4 + 0x10]
add ebx, ecx
and ebx, 7
mov ecx, dword [esi + 8]
movsx eax, dx
cmp edx, eax
je 0x1007b6f8
mov ecx, edx
movzx eax, dx
imul eax, dword [esi + 8]
sar ecx, 9
and ecx, 0xffffff80
imul ecx, dword [esi + 8]
sar eax, 9
inc ecx
add eax, ecx
mov ecx, dword [esi + 8]
sar eax, 1
jmp 0x1007b705
mov eax, ecx
imul eax, edx
add eax, 0x200
sar eax, 0xa
add eax, edi
mov dword [ebp - 0x74], eax
test edx, edx
je 0x1007b726
test edi, edi
je 0x1007b726
mov eax, dword [esi + 4]
xor edx, edi
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, ecx
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x74]
mov dword [esi + ebx*4 + 0x10], eax
mov edi, eax
mov eax, dword [ebp - 0x60]
add esi, 0x60
mov ebx, dword [ebp - 0x58]
test eax, eax
jne 0x1007b695
mov ecx, dword [ebp - 0x50]
inc ebx
and ebx, 7
test byte [ebp - 0x64], 0x40
mov dword [ebp - 0x58], ebx
je 0x1007b803
mov edx, dword [ecx + 0x128]
add edx, dword [ecx + 0x120]
mov esi, dword [ecx + 0x130]
mov dword [ecx + 0x120], edx
movsx eax, si
sar edx, 0x10
cmp esi, eax
je 0x1007b78e
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 0x1007b79b
mov eax, esi
imul eax, edx
add eax, 0x200
sar eax, 0xa
neg eax
test dword [ebp - 0x64], 0x20000000
je 0x1007b7ea
test edx, edx
jns 0x1007b7ea
test eax, eax
je 0x1007b7ea
cmp eax, esi
jne 0x1007b7d1
test eax, eax
jns 0x1007b7d0
mov ecx, dword [ebp - 0x84]
inc eax
mov esi, dword [ebp - 0x50]
mov edx, eax
sub edx, ecx
sub ecx, eax
add edi, ecx
mov dword [esi + 0x130], edx
jmp 0x1007b809
dec eax
mov ecx, dword [ebp - 0x84]
mov edx, eax
mov esi, dword [ebp - 0x50]
sub edx, ecx
sub ecx, eax
add edi, ecx
mov dword [esi + 0x130], edx
jmp 0x1007b809
mov ecx, dword [ebp - 0x84]
mov edx, ecx
mov esi, dword [ebp - 0x50]
neg edx
sub ecx, eax
add edi, ecx
mov dword [esi + 0x130], edx
jmp 0x1007b809
add edi, dword [ebp - 0x84]
mov eax, dword [ebp - 0x6c]
lea ecx, [edi + eax*2]
add ecx, eax
mov eax, edi
cdq
xor eax, edx
mov dword [ebp - 0x6c], ecx
sub eax, edx
cmp eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x54]
jg 0x1007c050
mov esi, dword [ebp - 0x5c]
inc eax
mov dword [ebp - 0x54], eax
mov dword [esi], edi
add esi, 4
mov edi, dword [ebp - 0x50]
mov dword [ebp - 0x5c], esi
cmp eax, dword [ebp - 0x4c]
jb 0x1007b660
mov ebx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x48]
jmp 0x1007c067
test edx, edx
je 0x1007c030
test esi, esi
jne 0x1007c030
mov edx, dword [ebp - 0x48]
xor eax, eax
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x4c], eax
jbe 0x1007c044
mov dword [ebp - 0x90], 0x400
nop dword [eax + eax]
lea eax, [ebp - 0x84]
xor ebx, ebx
push eax
xor edx, edx
mov dword [ebp - 0x70], ebx
mov ecx, edi
mov dword [ebp - 0x60], ebx
call fcn.100821a0
mov esi, eax
mov dword [ebp - 0x5c], esi
cmp esi, 0x80000000
je 0x1007c03c
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
lea edx, [ebx + 1]
call fcn.100821a0
mov edi, eax
mov dword [ebp - 0x68], edi
cmp edi, 0x80000000
je 0x1007c048
mov eax, dword [ebp - 0x64]
and eax, 0x20
mov dword [ebp - 0x8c], eax
je 0x1007bb0e
mov eax, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x84]
add edi, dword [ebp - 0x80]
add ebx, esi
mov dword [ebp - 0x70], ebx
lea edx, [eax + 0x160]
mov dword [ebp - 0x60], edi
mov eax, dword [eax + 0x84]
test eax, eax
je 0x1007baf7
dec eax
mov dword [ebp - 0x78], eax
mov eax, dword [edx]
test eax, eax
jle 0x1007b9cd
cmp eax, 8
jle 0x1007b93f
mov ecx, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
mov edi, dword [edx + 0x30]
test al, 1
je 0x1007b92e
lea esi, [ecx + ecx]
add edi, edi
sub esi, ebx
sub edi, dword [edx + 0x34]
jmp 0x1007b94a
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 0x1007b94a
mov eax, dword [ebp - 0x58]
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 0x1007b96f
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 0x1007b97b
imul ebx, esi
add ebx, 0x200
sar ebx, 0xa
add dword [ebp - 0x70], ebx
mov esi, dword [edx + 0xc]
movsx eax, di
cmp edi, eax
je 0x1007b9b1
mov ebx, dword [ebp - 0x70]
mov ecx, edi
sar ecx, 9
and ecx, 0xffffff80
movzx eax, di
mov edi, dword [ebp - 0x60]
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
add edi, esi
mov dword [ebp - 0x60], edi
jmp 0x1007bae9
mov ebx, dword [ebp - 0x70]
imul esi, edi
mov edi, dword [ebp - 0x60]
add esi, 0x200
sar esi, 0xa
add edi, esi
mov dword [ebp - 0x60], edi
jmp 0x1007bae9
cmp eax, 0xffffffff
jne 0x1007ba4c
mov esi, dword [edx + 0x10]
mov ecx, dword [edx + 8]
movsx eax, si
cmp esi, eax
je 0x1007b9f8
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 0x1007ba04
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
mov esi, dword [edx + 0xc]
add ebx, ecx
movsx eax, bx
mov dword [ebp - 0x70], ebx
cmp ebx, eax
je 0x1007ba36
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
add edi, esi
mov dword [ebp - 0x60], edi
jmp 0x1007bae9
imul esi, ebx
add esi, 0x200
sar esi, 0xa
add edi, esi
mov dword [ebp - 0x60], edi
jmp 0x1007bae9
mov esi, dword [edx + 0x30]
mov ecx, dword [edx + 0xc]
movsx eax, si
cmp esi, eax
je 0x1007ba72
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 0x1007ba7e
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
mov esi, dword [edx + 8]
add edi, ecx
cmp dword [edx], 0xfffffffd
mov dword [ebp - 0x60], edi
jne 0x1007bab6
mov ecx, dword [edx + 0x10]
movsx eax, cx
cmp ecx, eax
je 0x1007bab1
mov eax, dword [edx + 0x10]
sar ecx, 9
and ecx, 0xffffff80
movzx eax, ax
imul ecx, esi
imul esi, eax
sar esi, 9
inc esi
add esi, ecx
sar esi, 1
jmp 0x1007bae4
imul esi, ecx
jmp 0x1007badb
movsx eax, di
cmp edi, eax
je 0x1007bad8
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 0x1007bae4
imul esi, edi
add esi, 0x200
sar esi, 0xa
add ebx, esi
mov dword [ebp - 0x70], ebx
mov eax, dword [ebp - 0x78]
add edx, 0x60
test eax, eax
jne 0x1007b902
test byte [ebp - 0x64], 0x10
je 0x1007bb0b
mov eax, ebx
sar eax, 1
sub edi, eax
add ebx, edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x70], ebx
mov edi, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x50]
lea eax, [ecx + 0x160]
mov ecx, dword [ecx + 0x84]
test ecx, ecx
je 0x1007be37
mov ebx, dword [ebp - 0x5c]
nop dword [eax + eax]
mov edx, dword [eax]
dec ecx
mov dword [ebp - 0x94], ecx
test edx, edx
jle 0x1007bc51
cmp edx, 8
jle 0x1007bb80
mov ecx, dword [eax + 0x10]
mov edi, dword [eax + 0x30]
test dl, 1
je 0x1007bb5e
lea esi, [ecx + ecx]
add edi, edi
sub esi, dword [eax + 0x14]
sub edi, dword [eax + 0x34]
jmp 0x1007bb6e
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 [ebp - 0x5c], 0
jmp 0x1007bb93
mov ecx, dword [ebp - 0x58]
add edx, ecx
and edx, 7
mov dword [ebp - 0x5c], edx
mov esi, dword [eax + ecx*4 + 0x10]
mov edi, dword [eax + ecx*4 + 0x30]
movsx ecx, si
cmp esi, ecx
je 0x1007bbb7
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 0x1007bbc6
mov ecx, esi
imul ecx, dword [eax + 8]
add ecx, 0x200
sar ecx, 0xa
add ecx, ebx
mov dword [ebp - 0x78], ecx
movsx ecx, di
cmp edi, ecx
je 0x1007bbef
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 0x1007bbfe
mov ecx, edi
imul ecx, dword [eax + 0xc]
add ecx, 0x200
sar ecx, 0xa
mov edx, dword [ebp - 0x68]
add ecx, edx
mov dword [ebp - 0x68], ecx
test esi, esi
je 0x1007bc1d
test ebx, ebx
je 0x1007bc1d
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 0x1007bc34
test edx, edx
je 0x1007bc34
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 [ebp - 0x5c]
mov edx, dword [ebp - 0x78]
mov ebx, edx
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [ebp - 0x68]
mov edi, edx
mov dword [ebp - 0x68], edi
mov dword [eax + ecx*4 + 0x30], edx
jmp 0x1007be20
cmp edx, 0xffffffff
jne 0x1007bd37
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 8]
movsx ecx, di
cmp edi, ecx
je 0x1007bc82
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 0x1007bc90
mov ecx, edi
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
lea esi, [ebx + ecx]
test edi, edi
je 0x1007bcbf
test ebx, ebx
je 0x1007bcbf
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 0x1007bce6
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 0x1007bcf4
mov ecx, esi
imul ecx, edi
add ecx, 0x200
sar ecx, 0xa
mov edx, dword [ebp - 0x68]
add ecx, edx
mov dword [ebp - 0x78], ecx
test esi, esi
je 0x1007bd2a
test edx, edx
je 0x1007bd2a
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 [ebp - 0x78]
mov edi, ecx
mov dword [eax + 0x10], ecx
mov dword [ebp - 0x68], edi
jmp 0x1007be20
mov edi, dword [eax + 0x30]
mov esi, dword [eax + 0xc]
movsx ecx, di
cmp edi, ecx
mov ecx, edi
je 0x1007bd61
sar ecx, 9
movzx edx, di
and ecx, 0xffffff80
imul edx, esi
imul ecx, esi
sar edx, 9
inc edx
add ecx, edx
mov edx, dword [eax]
sar ecx, 1
jmp 0x1007bd6d
imul ecx, esi
add ecx, 0x200
sar ecx, 0xa
mov esi, dword [ebp - 0x68]
add esi, ecx
test edi, edi
je 0x1007bda0
mov ecx, dword [ebp - 0x68]
test ecx, ecx
je 0x1007bda0
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 [ebp - 0x90]
xor ecx, edi
sub ecx, edi
mov dword [eax + 0xc], ecx
mov edi, esi
mov dword [ebp - 0x68], edi
cmp edx, 0xfffffffd
jne 0x1007bdb0
mov esi, dword [eax + 0x10]
mov dword [eax + 0x10], edi
mov edx, dword [eax + 8]
movsx ecx, si
cmp esi, ecx
je 0x1007bdda
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 0x1007bde8
mov ecx, esi
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
add ecx, ebx
mov dword [ebp - 0x78], ecx
test esi, esi
je 0x1007be1b
test ebx, ebx
je 0x1007be1b
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 [ebp - 0x78]
mov ebx, ecx
mov dword [eax + 0x30], ecx
mov ecx, dword [ebp - 0x94]
add eax, 0x60
test ecx, ecx
jne 0x1007bb30
mov dword [ebp - 0x5c], ebx
mov ebx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x5c]
inc eax
mov edx, dword [ebp - 0x64]
and eax, 7
cmp dword [ebp - 0x8c], 0
mov dword [ebp - 0x58], eax
jne 0x1007be6c
mov ebx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x80]
add ebx, ecx
add esi, edi
test dl, 0x10
je 0x1007be7f
mov eax, ebx
sar eax, 1
sub esi, eax
add ebx, esi
jmp 0x1007be6f
mov esi, dword [ebp - 0x60]
test dl, 0x10
je 0x1007be7f
mov eax, ecx
sar eax, 1
sub edi, eax
mov dword [ebp - 0x68], edi
add ecx, edi
test dl, 0x40
je 0x1007bfdd
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x50]
mov edx, dword [eax + 0x128]
add edx, dword [eax + 0x120]
mov ecx, dword [eax + 0x130]
mov dword [eax + 0x120], edx
movsx eax, cx
sar edx, 0x10
mov dword [ebp - 0x8c], ecx
cmp ecx, eax
je 0x1007bee8
mov eax, dword [ebp - 0x50]
movzx ecx, cx
imul ecx, edx
mov eax, dword [eax + 0x130]
sar eax, 9
and eax, 0xffffff80
imul eax, edx
sar ecx, 9
inc eax
add eax, ecx
mov ecx, dword [ebp - 0x8c]
sar eax, 1
jmp 0x1007bef5
mov eax, ecx
imul eax, edx
add eax, 0x200
sar eax, 0xa
mov edi, dword [ebp - 0x64]
neg eax
mov dword [ebp - 0x5c], edi
and dword [ebp - 0x5c], 0x20000000
mov edi, dword [ebp - 0x68]
je 0x1007bf29
test edx, edx
jns 0x1007bf29
test eax, eax
je 0x1007bf29
cmp eax, ecx
jne 0x1007bf22
test eax, eax
jns 0x1007bf21
inc eax
mov ecx, eax
sub ecx, dword [ebp - 0x60]
jmp 0x1007bf2e
dec eax
mov ecx, eax
sub ecx, dword [ebp - 0x60]
jmp 0x1007bf2e
mov ecx, dword [ebp - 0x60]
neg ecx
mov edx, dword [ebp - 0x50]
sub ebx, eax
mov eax, edx
mov dword [edx + 0x130], ecx
mov ecx, esi
mov edx, dword [eax + 0x12c]
sub ecx, edi
add edx, dword [eax + 0x124]
mov edi, dword [eax + 0x134]
mov dword [eax + 0x124], edx
movsx eax, di
sar edx, 0x10
cmp edi, eax
mov dword [ebp - 0x60], ecx
mov eax, edi
mov dword [ebp - 0x80], ecx
je 0x1007bf85
sar eax, 9
movzx ecx, di
and eax, 0xffffff80
imul ecx, edx
imul eax, edx
sar ecx, 9
inc ecx
add eax, ecx
mov ecx, dword [ebp - 0x60]
sar eax, 1
jmp 0x1007bf90
imul eax, edx
add eax, 0x200
sar eax, 0xa
neg eax
cmp dword [ebp - 0x5c], 0
je 0x1007bfce
test edx, edx
jns 0x1007bfce
test eax, eax
je 0x1007bfce
cmp eax, edi
jne 0x1007bfbc
test eax, eax
jns 0x1007bfbb
mov edi, dword [ebp - 0x50]
inc eax
mov ecx, eax
sub ecx, dword [ebp - 0x60]
sub esi, eax
mov dword [edi + 0x134], ecx
jmp 0x1007bfe0
dec eax
mov edi, dword [ebp - 0x50]
mov ecx, eax
sub ecx, dword [ebp - 0x60]
sub esi, eax
mov dword [edi + 0x134], ecx
jmp 0x1007bfe0
mov edi, dword [ebp - 0x50]
neg ecx
sub esi, eax
mov dword [edi + 0x134], ecx
jmp 0x1007bfe0
mov edi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x7c]
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x1007c03c
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x1007c03c
mov ecx, dword [ebp - 0x6c]
lea eax, [ebx + esi]
lea eax, [eax + ebx*2]
lea eax, [eax + ecx*8]
add ecx, eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x6c], ecx
mov dword [eax], ebx
mov dword [eax + 4], esi
add eax, 8
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x54]
inc eax
mov dword [ebp - 0x54], eax
cmp eax, dword [ebp - 0x4c]
jb 0x1007b880
mov ebx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x48]
jmp 0x1007c067
mov edx, dword [ebp - 0x48]
xor eax, eax
mov dword [ebp - 0x54], eax
xor ebx, ebx
jmp 0x1007c067
mov ebx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x48]
jmp 0x1007c064
xor ebx, ebx
jmp 0x1007c067
mov ebx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x48]
jmp 0x1007c061
mov ebx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x50]
mov edx, dword [ebp - 0x48]
jmp 0x1007c067
xor ebx, ebx
jmp 0x1007c06a
xor ebx, ebx
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x4c]
cmp eax, ecx
je 0x1007c0d5
test byte [ebp - 0x64], 4
mov eax, 0
sete al
lea eax, [eax*4 + 4]
imul eax, ecx
push eax
push 0
push edx
call fcn.1009e470
mov eax, dword [ebp - 0x4c]
add esp, 0xc
cmp dword [edi + 0xf8], 0
mov dword [edi + 0x88], 1
mov dword [ebp - 0x54], eax
je 0x1007c0d5
cmp dword [edi + 0x104], 0x10
jae 0x1007c0b9
add dword [edi + 0xf8], 2
xorps xmm0, xmm0
movups xmmword [edi + 0xf0], xmm0
movq qword [edi + 0x100], xmm0
mov dword [edi + 0x108], 0
test ebx, ebx
je 0x1007c1cd
mov esi, dword [edi + 0x84]
add edi, 0x160
test esi, esi
je 0x1007c1cd
mov edx, dword [ebp - 0x50]
add edx, 0x190
nop word [eax + eax]
mov eax, dword [edi]
dec esi
dec eax
cmp eax, 7
ja 0x1007c1bf
movups xmm0, xmmword [edx - 0x20]
lea ecx, [ebx + 1]
and ecx, 7
movups xmmword [ebp - 0x24], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ebp - 0x14], xmm0
mov eax, dword [ebp + ebx*4 - 0x24]
movups xmm0, xmmword [edx]
movups xmmword [ebp - 0x44], xmm0
movups xmm0, xmmword [edx + 0x10]
mov dword [edx - 0x20], eax
movups xmmword [ebp - 0x34], xmm0
mov eax, dword [ebp + ebx*4 - 0x44]
mov dword [edx], eax
mov eax, dword [ebp + ecx*4 - 0x24]
mov dword [edx - 0x1c], eax
mov eax, dword [ebp + ecx*4 - 0x44]
inc ecx
and ecx, 7
mov dword [edx + 4], eax
mov eax, dword [ebp + ecx*4 - 0x24]
mov dword [edx - 0x18], eax
mov eax, dword [ebp + ecx*4 - 0x44]
inc ecx
and ecx, 7
mov dword [edx + 8], eax
mov eax, dword [ebp + ecx*4 - 0x24]
mov dword [edx - 0x14], eax
mov eax, dword [ebp + ecx*4 - 0x44]
inc ecx
and ecx, 7
mov dword [edx + 0xc], eax
mov eax, dword [ebp + ecx*4 - 0x24]
mov dword [edx - 0x10], eax
mov eax, dword [ebp + ecx*4 - 0x44]
inc ecx
and ecx, 7
mov dword [edx + 0x10], eax
mov eax, dword [ebp + ecx*4 - 0x24]
mov dword [edx - 0xc], eax
mov eax, dword [ebp + ecx*4 - 0x44]
inc ecx
and ecx, 7
mov dword [edx + 0x14], eax
mov eax, dword [ebp + ecx*4 - 0x24]
mov dword [edx - 8], eax
mov eax, dword [ebp + ecx*4 - 0x44]
inc ecx
and ecx, 7
mov dword [edx + 0x18], eax
mov eax, dword [ebp + ecx*4 - 0x24]
lea ebx, [ecx + 1]
mov dword [edx - 4], eax
and ebx, 7
mov eax, dword [ebp + ecx*4 - 0x44]
mov dword [edx + 0x1c], eax
add edi, 0x60
add edx, 0x60
test esi, esi
jne 0x1007c100
mov ebx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x48]
mov edx, esi
mov ecx, dword [ebp - 0x88]
push ebx
call fcn.1007d280
mov ecx, dword [ebp - 0x64]
add esp, 4
test cl, cl
jns 0x1007c285
mov edx, dword [ebp - 0x88]
test byte [edx + 0x9c], 0x10
je 0x1007c285
cmp dword [ebp - 0x98], 0
lea eax, [ebx + ebx]
mov edi, ebx
mov ebx, dword [edx + 0xa0]
cmove edi, eax
mov edx, esi
mov eax, dword [ebp - 0x50]
movzx eax, byte [eax + 0x11f]
sub ebx, eax
add ebx, 0x7f
je 0x1007c282
test edi, edi
je 0x1007c282
nop
mov ecx, dword [edx]
dec edi
mov eax, ecx
sar eax, 0x17
movzx esi, al
test al, al
je 0x1007c271
lea eax, [esi + ebx]
test eax, eax
jle 0x1007c271
cmp esi, 0xff
je 0x1007c263
cmp eax, 0xff
jge 0x1007c263
shl eax, 0x17
xor eax, ecx
and eax, 0x7f800000
xor eax, ecx
jmp 0x1007c273
mov eax, ecx
and eax, 0x80000000
xor eax, 0x7f800000
jmp 0x1007c273
xor eax, eax
mov dword [edx], eax
add edx, 4
test edi, edi
jne 0x1007c230
mov esi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x54]
test ecx, 0x40000000
je 0x1007c2b5
lea ecx, [esi + ebx*8]
lea edx, [esi + ebx*4]
mov esi, ebx
test ebx, ebx
je 0x1007c2b5
nop dword [eax]
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 0x1007c2a0
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 4]
pop edi
add dword [eax + 0xa8], ebx
xor ecx, ebp
mov dword [eax + 0xac], edx
mov eax, ebx
pop esi
pop ebx
call fcn.1009bd8a
mov esp, ebp
pop ebp
ret