Function at 0x7003bb00
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xac
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax + 0x180]
mov eax, dword [eax + 0x190]
mov eax, dword [eax + edx*4]
mov edi, dword [eax + 0x18]
mov edx, dword [eax + 0xa8]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x90], edi
mov edi, dword [eax + 0xac]
add ecx, edx
mov dword [ebp - 0x98], edi
mov edi, eax
mov eax, dword [eax + 0x14]
add eax, dword [edi + 0x10]
mov esi, eax
sub esi, edx
cmp ecx, eax
mov eax, dword [edi + 0x88]
mov edx, esi
cmovbe edx, dword [ebp + 0x10]
test eax, eax
mov dword [ebp + 0x10], edx
je 0x7003bbc0
mov eax, dword [ebp + 8]
cmp dword [eax + 0xa4], 1
je 0x7003bb84
cmp dword [eax + 0x1c], 1
je 0x7003bb84
test byte [ebp - 0x90], 4
je 0x7003cda4
mov eax, dword [ebp + 0x10]
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.6fef7ef0
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x6c], edi
add dword [eax + 0xa8], edi
mov eax, dword [ebp - 0x6c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ebp - 0x90]
mov eax, edi
and eax, 0x7c0000
mov dword [ebp - 0x70], eax
mov eax, 1
shr dword [ebp - 0x70], 0x12
movzx ecx, byte [ebp - 0x70]
shl eax, cl
add eax, 2
mov dword [ebp - 0x9c], eax
mov eax, edi
mov edi, dword [ebp - 0x8c]
and eax, 8
je 0x7003be40
mov edi, dword [edi + 0x74]
test edi, edi
je 0x7003cdaf
test dword [ebp - 0x90], 0x40000004
jne 0x7003c0bf
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x7003e0ae
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x60]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x90]
and eax, 0x20
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa0]
xor edx, edx
mov edi, dword [ebp - 0x8c]
mov dword [esp], eax
mov ecx, edi
call fcn.700412c0
sub esp, 4
cmp eax, 0x80000000
mov dword [ebp - 0x6c], eax
je 0x7003be6c
lea eax, [ebp - 0x5c]
mov edx, 1
mov dword [esp], eax
mov ecx, edi
call fcn.700412c0
sub esp, 4
cmp eax, 0x80000000
mov dword [ebp - 0x70], eax
je 0x7003be6c
mov edi, dword [ebp - 0xa4]
test edi, edi
jne 0x7003c717
mov eax, dword [ebp - 0x90]
mov edi, dword [ebp - 0x8c]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x88], 0
and eax, 0x10
mov dword [ebp - 0xac], eax
mov eax, dword [edi + 0x84]
add edi, 0x160
lea esi, [eax - 1]
mov dword [ebp - 0x74], esi
test eax, eax
je 0x7003c2e8
mov eax, dword [ebp - 0x7c]
lea eax, [edi + eax*4 + 0x10]
mov dword [ebp - 0x80], eax
jmp 0x7003bdda
and ecx, 1
mov ebx, dword [edi + 0x10]
je 0x7003c2d0
mov ecx, dword [edi + 0x30]
lea edx, [ebx + ebx]
sub edx, dword [edi + 0x14]
lea eax, [ecx + ecx]
sub eax, dword [edi + 0x34]
mov dword [edi + 0x34], ecx
movsx ecx, dx
cmp ecx, edx
mov dword [edi + 0x14], ebx
mov dword [ebp - 0x78], 0
je 0x7003be0a
mov esi, dword [edi + 8]
mov ebx, edx
movzx ecx, dx
xor bx, bx
sar ebx, 9
imul ecx, esi
imul ebx, esi
sar ecx, 9
lea ebx, [ecx + ebx + 1]
movsx ecx, ax
sar ebx, 1
add ebx, dword [ebp - 0x6c]
cmp ecx, eax
je 0x7003be27
mov esi, eax
movzx ecx, ax
xor si, si
imul ecx, dword [edi + 0xc]
sar esi, 9
imul esi, dword [edi + 0xc]
sar ecx, 9
lea ecx, [ecx + esi + 1]
sar ecx, 1
add ecx, dword [ebp - 0x70]
test edx, edx
je 0x7003bd98
mov esi, dword [ebp - 0x6c]
test esi, esi
je 0x7003bd98
xor edx, dword [ebp - 0x6c]
mov esi, dword [edi + 4]
sar edx, 0x1f
xor esi, edx
sub esi, edx
add dword [edi + 8], esi
test eax, eax
je 0x7003bdb3
mov edx, dword [ebp - 0x70]
test edx, edx
je 0x7003bdb3
xor eax, dword [ebp - 0x70]
mov edx, dword [edi + 4]
sar eax, 0x1f
xor edx, eax
sub edx, eax
add dword [edi + 0xc], edx
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], ebx
lea eax, [edi + eax*4]
mov dword [eax + 0x10], ebx
mov dword [eax + 0x30], ecx
sub dword [ebp - 0x74], 1
add edi, 0x60
add dword [ebp - 0x80], 0x60
cmp dword [ebp - 0x74], 0xffffffff
je 0x7003c2e8
mov ecx, dword [edi]
test ecx, ecx
jle 0x7003c1e0
cmp ecx, 8
jg 0x7003bd00
mov eax, dword [ebp - 0x80]
add ecx, dword [ebp - 0x7c]
mov edx, dword [eax]
mov dword [ebp - 0x78], ecx
mov eax, dword [eax + 0x20]
and dword [ebp - 0x78], 7
movsx ecx, dx
cmp ecx, edx
jne 0x7003bd33
mov ebx, dword [edi + 8]
movsx ecx, ax
imul ebx, edx
add ebx, 0x200
sar ebx, 0xa
add ebx, dword [ebp - 0x6c]
cmp ecx, eax
jne 0x7003bd5e
mov ecx, dword [edi + 0xc]
imul ecx, eax
add ecx, 0x200
sar ecx, 0xa
jmp 0x7003bd7a
mov esi, dword [edi + 0x74]
test esi, esi
je 0x7003cdb5
test dword [ebp - 0x90], 0x40000004
je 0x7003bc14
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x94], 0
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp + 0x10]
je 0x7003c4f7
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], 0
and eax, 4
cmp eax, 1
sbb eax, eax
and eax, 4
add eax, 4
imul eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.6fef7ef0
mov eax, dword [ebp - 0x8c]
mov dword [eax + 0x88], 1
mov eax, dword [eax + 0xf8]
test eax, eax
je 0x7003bed7
mov eax, dword [ebp - 0x8c]
add eax, 0xf0
mov dword [esp], eax
call fcn.7002f360
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x6c], eax
mov edi, dword [ebp - 0x7c]
test edi, edi
je 0x7003bfb0
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x84]
lea ecx, [eax + 0x160]
test ebx, ebx
je 0x7003bfb0
mov eax, dword [ebp - 0x7c]
jmp 0x7003bf13
add ecx, 0x60
sub ebx, 1
je 0x7003bfb0
mov edi, dword [ecx]
lea edx, [edi - 1]
cmp edx, 7
ja 0x7003bf07
mov esi, dword [ecx + 0x10]
mov edx, dword [ecx + 0x2c]
mov dword [ebp - 0x58], esi
mov esi, dword [ecx + 0x14]
mov dword [ebp - 0x3c], edx
mov edx, dword [ecx + 0x4c]
mov dword [ebp - 0x54], esi
mov esi, dword [ecx + 0x18]
mov dword [ebp - 0x1c], edx
mov edx, ecx
mov dword [ebp - 0x50], esi
mov esi, dword [ecx + 0x1c]
mov dword [ebp - 0x4c], esi
mov esi, dword [ecx + 0x20]
mov dword [ebp - 0x48], esi
mov esi, dword [ecx + 0x24]
mov dword [ebp - 0x44], esi
mov esi, dword [ecx + 0x28]
mov dword [ebp - 0x40], esi
mov esi, dword [ecx + 0x30]
mov dword [ebp - 0x38], esi
mov esi, dword [ecx + 0x34]
mov dword [ebp - 0x34], esi
mov esi, dword [ecx + 0x38]
mov dword [ebp - 0x30], esi
mov esi, dword [ecx + 0x3c]
mov dword [ebp - 0x2c], esi
mov esi, dword [ecx + 0x40]
mov dword [ebp - 0x28], esi
mov esi, dword [ecx + 0x44]
mov dword [ebp - 0x24], esi
mov esi, dword [ecx + 0x48]
mov dword [ebp - 0x20], esi
xor esi, esi
mov edi, dword [ebp + eax*4 - 0x58]
add esi, 1
add edx, 4
mov dword [edx + 0xc], edi
mov edi, dword [ebp + eax*4 - 0x38]
add eax, 1
and eax, 7
mov dword [edx + 0x2c], edi
cmp esi, 8
jne 0x7003bf81
add ecx, 0x60
sub ebx, 1
jne 0x7003bf13
lea esi, [esi]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x180]
mov eax, dword [eax + 0x190]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebx + 0x18]
test al, 8
mov dword [ebp - 0x78], eax
jne 0x7003ca38
test byte [ebp - 0x78], 0x80
mov dword [ebp - 0xa0], 0
je 0x7003ca52
mov eax, dword [ebp + 0x10]
mov dword [esp], ebx
add eax, eax
test dword [ebp - 0x78], 0x40000004
cmovne eax, dword [ebp - 0x6c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
call fcn.700426e0
test byte [ebp - 0x90], 0x80
je 0x7003c060
mov eax, dword [ebp + 8]
test byte [eax + 0x9c], 0x10
je 0x7003c060
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp + 8]
movzx edx, byte [eax + 0x11f]
mov eax, 0x7f
sub eax, edx
add eax, dword [edi + 0xa0]
mov edi, dword [ebp + 0x10]
test dword [ebp - 0x90], 0x40000004
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
lea edx, [edi + edi]
cmovne edx, dword [ebp - 0x6c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.70042fd0
test dword [ebp - 0x90], 0x40000000
je 0x7003c099
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
lea edx, [eax + edi*8]
lea eax, [eax + edi*4]
mov edi, dword [ebp - 0x6c]
test edi, edi
lea ecx, [edi - 1]
je 0x7003c099
sub eax, 4
mov ebx, dword [eax]
sub ecx, 1
sub edx, 8
mov dword [edx + 4], ebx
mov ebx, dword [eax]
cmp ecx, 0xffffffff
mov dword [edx], ebx
jne 0x7003c082
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp + 0x10]
add dword [eax + 0xa8], edi
mov edi, dword [ebp - 0x98]
mov dword [eax + 0xac], edi
mov eax, dword [ebp - 0x6c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x7003e0ae
mov edi, dword [ebp - 0x90]
lea eax, [ebp - 0x60]
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x94], 0
mov eax, edi
and eax, 0x40
mov dword [ebp - 0x70], eax
mov eax, edi
and eax, 0x20000000
mov dword [ebp - 0x74], eax
lea esi, [esi]
mov eax, dword [ebp - 0xa0]
xor edx, edx
mov esi, dword [ebp - 0x8c]
mov dword [esp], eax
mov ecx, esi
call fcn.700412c0
sub esp, 4
cmp eax, 0x80000000
mov edi, eax
je 0x7003be6c
mov edx, dword [esi + 0x84]
mov eax, esi
add eax, 0x160
lea esi, [edx - 1]
test edx, edx
mov dword [ebp - 0x6c], esi
jne 0x7003c1ae
jmp 0x7003c508
and ebx, 1
mov ecx, dword [eax + 0x10]
je 0x7003c2c0
lea edx, [ecx + ecx]
sub edx, dword [eax + 0x14]
mov dword [eax + 0x14], ecx
movsx ecx, dx
xor ebx, ebx
cmp ecx, edx
je 0x7003c1c8
mov esi, edx
movzx ecx, dx
xor si, si
imul ecx, dword [eax + 8]
sar esi, 9
imul esi, dword [eax + 8]
sar ecx, 9
lea ecx, [ecx + esi + 1]
sar ecx, 1
add ecx, edi
test edx, edx
je 0x7003c197
test edi, edi
je 0x7003c197
mov esi, dword [eax + 4]
xor edx, edi
sar edx, 0x1f
xor esi, edx
sub esi, edx
add dword [eax + 8], esi
sub dword [ebp - 0x6c], 1
mov dword [eax + ebx*4 + 0x10], ecx
add eax, 0x60
cmp dword [ebp - 0x6c], 0xffffffff
je 0x7003c510
mov edi, ecx
mov ebx, dword [eax]
cmp ebx, 8
jg 0x7003c144
mov esi, dword [ebp - 0x7c]
mov edx, dword [eax + esi*4 + 0x10]
add ebx, esi
and ebx, 7
movsx ecx, dx
cmp ecx, edx
jne 0x7003c162
mov ecx, dword [eax + 8]
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
jmp 0x7003c17e
cmp ecx, 0xffffffff
je 0x7003c600
mov eax, dword [edi + 0x30]
movsx edx, ax
cmp eax, edx
je 0x7003c6f0
mov esi, dword [edi + 0xc]
mov ebx, eax
movzx edx, ax
xor bx, bx
sar ebx, 9
imul edx, esi
imul ebx, esi
sar edx, 9
lea esi, [edx + ebx + 1]
sar esi, 1
add esi, dword [ebp - 0x70]
test eax, eax
je 0x7003c247
mov ebx, dword [ebp - 0x70]
test ebx, ebx
je 0x7003c247
xor eax, dword [ebp - 0x70]
mov ebx, 0x400
mov edx, dword [edi + 0xc]
sar eax, 0x1f
xor edx, eax
sub edx, eax
add edx, dword [edi + 4]
cmp edx, 0x401
cmovge edx, ebx
xor edx, eax
sub edx, eax
mov dword [edi + 0xc], edx
cmp ecx, 0xfffffffd
mov edx, esi
je 0x7003c6e0
movsx eax, dx
cmp eax, edx
je 0x7003c6c7
mov ebx, dword [edi + 8]
mov ecx, edx
movzx eax, dx
xor cx, cx
sar ecx, 9
imul eax, ebx
imul ecx, ebx
sar eax, 9
lea eax, [eax + ecx + 1]
sar eax, 1
add eax, dword [ebp - 0x6c]
test edx, edx
je 0x7003c2ad
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
je 0x7003c2ad
xor edx, dword [ebp - 0x6c]
mov ebx, 0x400
mov ecx, dword [edi + 8]
sar edx, 0x1f
xor ecx, edx
sub ecx, edx
add ecx, dword [edi + 4]
cmp ecx, 0x401
cmovge ecx, ebx
xor ecx, edx
sub ecx, edx
mov dword [edi + 8], ecx
mov dword [edi + 0x30], eax
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], eax
jmp 0x7003bdc5
lea edx, [ecx + ecx*2]
sub edx, dword [eax + 0x14]
sar edx, 1
jmp 0x7003c156
mov ecx, dword [edi + 0x30]
lea edx, [ebx + ebx*2]
sub edx, dword [edi + 0x14]
lea eax, [ecx + ecx*2]
sub eax, dword [edi + 0x34]
sar edx, 1
sar eax, 1
jmp 0x7003bd1b
mov eax, dword [ebp - 0xa4]
add dword [ebp - 0x7c], 1
and dword [ebp - 0x7c], 7
test eax, eax
jne 0x7003c704
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x70]
add eax, dword [ebp - 0x5c]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0xac]
test eax, eax
je 0x7003c348
mov eax, dword [ebp - 0x88]
sar eax, 1
sub dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
add dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x6c]
sar eax, 1
sub dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
add dword [ebp - 0x6c], eax
test byte [ebp - 0x90], 0x40
je 0x7003c479
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x88]
sub esi, dword [ebp - 0x6c]
mov ebx, dword [eax + 0x120]
add ebx, dword [eax + 0x128]
mov dword [ebp - 0x60], esi
mov dword [eax + 0x120], ebx
mov eax, dword [eax + 0x130]
sar ebx, 0x10
movsx edx, ax
cmp eax, edx
je 0x7003cd00
mov edx, eax
movzx ecx, ax
xor dx, dx
imul ecx, ebx
sar edx, 9
imul edx, ebx
sar ecx, 9
lea edx, [ecx + edx + 1]
sar edx, 1
neg edx
mov edi, dword [ebp - 0x90]
and edi, 0x20000000
je 0x7003c980
shr ebx, 0x1f
test bl, bl
je 0x7003c980
test edx, edx
je 0x7003c980
cmp edx, eax
je 0x7003dc88
mov eax, edx
sub eax, esi
mov esi, dword [ebp - 0x8c]
mov dword [esi + 0x130], eax
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x84]
sub esi, dword [ebp - 0x70]
sub dword [ebp - 0x88], edx
mov ebx, dword [eax + 0x124]
add ebx, dword [eax + 0x12c]
mov dword [ebp - 0x5c], esi
mov dword [eax + 0x124], ebx
mov eax, dword [eax + 0x134]
sar ebx, 0x10
movsx edx, ax
cmp eax, edx
je 0x7003cce6
mov edx, eax
movzx ecx, ax
xor dx, dx
imul ecx, ebx
sar edx, 9
imul edx, ebx
sar ecx, 9
lea edx, [ecx + edx + 1]
sar edx, 1
neg edx
test edi, edi
je 0x7003c968
shr ebx, 0x1f
test bl, bl
je 0x7003c968
test edx, edx
je 0x7003c968
cmp edx, eax
je 0x7003dc76
mov edi, dword [ebp - 0x8c]
mov eax, edx
sub eax, esi
mov dword [edi + 0x134], eax
sub dword [ebp - 0x84], edx
mov edi, dword [ebp - 0x88]
mov ebx, dword [ebp - 0x9c]
mov edx, edi
mov eax, edi
sar edx, 0x1f
xor eax, edx
sub eax, edx
cmp ebx, eax
jl 0x7003be6c
mov esi, dword [ebp - 0x84]
mov edx, esi
mov eax, esi
sar edx, 0x1f
xor eax, edx
sub eax, edx
cmp ebx, eax
jl 0x7003be6c
mov eax, dword [ebp - 0x98]
mov edx, edi
add dword [ebp - 0x94], 1
lea eax, [eax + eax*8]
add eax, edi
mov edi, esi
add eax, esi
lea eax, [eax + edx*2]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0xa8]
mov dword [eax], edx
add eax, 8
mov esi, eax
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp + 0x10]
mov dword [esi - 4], edi
jne 0x7003bc51
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x6c], eax
mov dword [ebp + 0x10], eax
jmp 0x7003bedd
mov ecx, edi
lea esi, [esi]
mov esi, dword [ebp - 0x70]
add dword [ebp - 0x7c], 1
and dword [ebp - 0x7c], 7
test esi, esi
je 0x7003c900
mov eax, dword [ebp - 0x8c]
mov esi, dword [eax + 0x120]
add esi, dword [eax + 0x128]
mov dword [eax + 0x120], esi
mov eax, dword [eax + 0x130]
sar esi, 0x10
movsx edx, ax
cmp eax, edx
je 0x7003cd15
mov edx, eax
movzx ebx, ax
xor dx, dx
imul ebx, esi
sar edx, 9
imul edx, esi
sar ebx, 9
lea edx, [ebx + edx + 1]
sar edx, 1
neg edx
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0x7003c993
shr esi, 0x1f
mov ebx, esi
test bl, bl
je 0x7003c993
test edx, edx
je 0x7003c993
cmp edx, eax
je 0x7003dc9a
mov ebx, dword [ebp - 0x60]
mov eax, edx
mov edi, dword [ebp - 0x8c]
sub eax, ebx
mov dword [edi + 0x130], eax
mov eax, ebx
sub eax, edx
add ecx, eax
mov eax, dword [ebp - 0x98]
mov edx, ecx
sar edx, 0x1f
lea eax, [ecx + eax*2]
add dword [ebp - 0x98], eax
mov eax, edx
xor eax, ecx
sub eax, edx
cmp dword [ebp - 0x9c], eax
jl 0x7003be6c
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp - 0x94]
add dword [ebp - 0x94], 1
mov dword [eax + edi*4], ecx
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp + 0x10]
jne 0x7003c100
jmp 0x7003c4f7
mov eax, dword [edi + 0x10]
movsx edx, ax
cmp eax, edx
je 0x7003ca24
mov ebx, dword [edi + 8]
mov ecx, eax
movzx edx, ax
xor cx, cx
sar ecx, 9
imul edx, ebx
imul ecx, ebx
sar edx, 9
lea edx, [edx + ecx + 1]
sar edx, 1
mov esi, dword [ebp - 0x6c]
test eax, eax
lea ebx, [edx + esi]
je 0x7003c65d
test esi, esi
je 0x7003c65d
mov edx, dword [edi + 8]
xor eax, esi
mov esi, 0x400
sar eax, 0x1f
xor edx, eax
sub edx, eax
add edx, dword [edi + 4]
cmp edx, 0x401
cmovge edx, esi
xor edx, eax
sub edx, eax
mov dword [edi + 8], edx
movsx eax, bx
cmp eax, ebx
je 0x7003ca10
mov ecx, dword [edi + 0xc]
mov edx, ebx
movzx eax, bx
xor dx, dx
sar edx, 9
imul eax, ecx
imul edx, ecx
sar eax, 9
lea edx, [eax + edx + 1]
sar edx, 1
add edx, dword [ebp - 0x70]
test ebx, ebx
je 0x7003c6b9
mov esi, dword [ebp - 0x70]
test esi, esi
je 0x7003c6b9
mov eax, dword [ebp - 0x70]
mov esi, 0x400
xor eax, ebx
sar eax, 0x1f
mov ecx, eax
xor eax, dword [edi + 0xc]
sub eax, ecx
add eax, dword [edi + 4]
cmp eax, 0x401
cmovge eax, esi
xor eax, ecx
sub eax, ecx
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], edx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], ebx
jmp 0x7003bdc5
mov eax, dword [edi + 8]
imul eax, edx
add eax, 0x200
sar eax, 0xa
jmp 0x7003c27a
mov edx, dword [edi + 0x10]
mov dword [edi + 0x10], esi
jmp 0x7003c252
mov esi, dword [edi + 0xc]
imul esi, eax
add esi, 0x200
sar esi, 0xa
jmp 0x7003c214
mov eax, dword [ebp - 0xac]
test eax, eax
jne 0x7003c33a
jmp 0x7003c348
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x8c]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x70]
add eax, dword [ebp - 0x5c]
add edi, 0x160
mov dword [ebp - 0x84], eax
mov eax, dword [edi - 0xdc]
lea esi, [eax - 1]
test eax, eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], esi
je 0x7003c8ab
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x80], edi
lea eax, [edi + eax*4 + 0x10]
mov ebx, eax
mov eax, edi
mov edi, ebx
jmp 0x7003c7e0
and edx, 1
je 0x7003c8e2
mov ebx, dword [eax + 0x10]
lea ecx, [ebx + ebx]
mov ebx, dword [eax + 0x30]
sub ecx, dword [eax + 0x14]
lea edx, [ebx + ebx]
sub edx, dword [eax + 0x34]
movsx ebx, cx
cmp ebx, ecx
je 0x7003c7fb
movzx ebx, cx
xor cx, cx
imul ebx, dword [eax + 8]
sar ecx, 9
imul ecx, dword [eax + 8]
sar ebx, 9
lea ecx, [ebx + ecx + 1]
sar ecx, 1
add dword [ebp - 0x88], ecx
movsx ecx, dx
cmp ecx, edx
je 0x7003c815
mov ebx, dword [eax + 0xc]
movzx ecx, dx
xor dx, dx
sar edx, 9
imul ecx, ebx
imul edx, ebx
sar ecx, 9
lea edx, [ecx + edx + 1]
sar edx, 1
sub esi, 1
add eax, 0x60
add dword [ebp - 0x84], edx
add edi, 0x60
cmp esi, 0xffffffff
je 0x7003c8a8
mov edx, dword [eax]
test edx, edx
jle 0x7003c824
cmp edx, 8
jg 0x7003c764
mov ecx, dword [edi]
mov edx, dword [edi + 0x20]
movsx ebx, cx
cmp ebx, ecx
jne 0x7003c786
imul ecx, dword [eax + 8]
add ecx, 0x200
sar ecx, 0xa
add dword [ebp - 0x88], ecx
movsx ecx, dx
cmp ecx, edx
jne 0x7003c7ad
imul edx, dword [eax + 0xc]
add edx, 0x200
sar edx, 0xa
jmp 0x7003c7c8
cmp edx, 0xffffffff
je 0x7003c908
mov ecx, dword [eax + 0x30]
movsx ebx, cx
cmp ecx, ebx
je 0x7003c9b0
movzx ebx, cx
xor cx, cx
imul ebx, dword [eax + 0xc]
sar ecx, 9
imul ecx, dword [eax + 0xc]
sar ebx, 9
lea ecx, [ebx + ecx + 1]
sar ecx, 1
add dword [ebp - 0x84], ecx
cmp edx, 0xfffffffd
je 0x7003c9cc
mov ecx, dword [ebp - 0x84]
movsx edx, cx
cmp edx, ecx
je 0x7003c9f6
mov ebx, dword [eax + 8]
movzx edx, cx
xor cx, cx
sar ecx, 9
imul edx, ebx
imul ecx, ebx
sar edx, 9
lea edx, [edx + ecx + 1]
sar edx, 1
sub esi, 1
add eax, 0x60
add dword [ebp - 0x88], edx
add edi, 0x60
cmp esi, 0xffffffff
jne 0x7003c7e0
mov edi, dword [ebp - 0x80]
mov esi, dword [ebp - 0x90]
mov eax, dword [ebp - 0x78]
and esi, 0x10
mov dword [ebp - 0xac], esi
je 0x7003bce6
mov edx, dword [ebp - 0x88]
sar edx, 1
sub dword [ebp - 0x84], edx
mov esi, dword [ebp - 0x84]
add dword [ebp - 0x88], esi
jmp 0x7003bce6
mov edx, dword [eax + 0x10]
lea ecx, [edx + edx*2]
mov edx, dword [eax + 0x30]
sub ecx, dword [eax + 0x14]
lea edx, [edx + edx*2]
sub edx, dword [eax + 0x34]
sar ecx, 1
sar edx, 1
jmp 0x7003c77f
add ecx, dword [ebp - 0x60]
jmp 0x7003c5ac
mov edx, dword [eax + 0x10]
movsx ecx, dx
cmp edx, ecx
je 0x7003cd48
mov ebx, dword [eax + 8]
movzx ecx, dx
xor dx, dx
sar edx, 9
imul ecx, ebx
imul edx, ebx
sar ecx, 9
lea edx, [ecx + edx + 1]
sar edx, 1
add dword [ebp - 0x88], edx
mov ecx, dword [ebp - 0x88]
movsx edx, cx
cmp edx, ecx
je 0x7003cd30
mov ebx, dword [eax + 0xc]
movzx edx, cx
xor cx, cx
sar ecx, 9
imul edx, ebx
imul ecx, ebx
sar edx, 9
lea edx, [edx + ecx + 1]
sar edx, 1
jmp 0x7003c7c8
mov eax, dword [ebp - 0x8c]
neg esi
mov dword [eax + 0x134], esi
jmp 0x7003c473
mov eax, dword [ebp - 0x8c]
neg esi
mov dword [eax + 0x130], esi
jmp 0x7003c3e6
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x8c]
mov ebx, eax
neg ebx
mov dword [edi + 0x130], ebx
jmp 0x7003c5a8
imul ecx, dword [eax + 0xc]
add ecx, 0x200
sar ecx, 0xa
add dword [ebp - 0x84], ecx
cmp edx, 0xfffffffd
jne 0x7003c864
mov edx, dword [eax + 0x10]
movsx ecx, dx
cmp edx, ecx
je 0x7003c9fc
mov ebx, dword [eax + 8]
movzx ecx, dx
xor dx, dx
sar edx, 9
imul ecx, ebx
imul edx, ebx
sar ecx, 9
lea edx, [ecx + edx + 1]
sar edx, 1
jmp 0x7003c890
mov edx, dword [ebp - 0x84]
imul edx, dword [eax + 8]
add edx, 0x200
sar edx, 0xa
jmp 0x7003c890
mov edx, dword [edi + 0xc]
imul edx, ebx
add edx, 0x200
sar edx, 0xa
jmp 0x7003c685
mov edx, dword [edi + 8]
imul edx, eax
add edx, 0x200
sar edx, 0xa
jmp 0x7003c62b
mov esi, dword [ebx + 0x74]
xor eax, eax
test esi, esi
sete al
test byte [ebp - 0x78], 0x80
mov dword [ebp - 0xa0], eax
jne 0x7003bfe4
mov edi, dword [ebp - 0x78]
mov eax, edi
and eax, 0x3e000
mov dword [ebp - 0x94], eax
shr dword [ebp - 0x94], 0xd
test edi, 0x100
je 0x7003cbc1
mov eax, dword [ebp + 0x10]
and edi, 0x40000004
movzx esi, byte [ebx + 0x118]
lea edx, [eax + eax]
cmovne edx, eax
movzx eax, byte [ebx + 0x119]
mov ecx, esi
mov dword [ebp - 0x7c], eax
movzx eax, byte [ebx + 0x11a]
mov dword [ebp - 0x88], eax
movzx eax, byte [ebx + 0x11b]
mov dword [ebp - 0xa4], eax
mov eax, 1
shl eax, cl
mov ecx, dword [ebx + 0xf8]
sub eax, 1
mov dword [ebp - 0x80], eax
test ecx, ecx
je 0x7003df41
mov eax, dword [ebx + 0xb0]
test edx, edx
mov dword [ebp - 0x74], eax
je 0x7003cbb8
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x70], eax
lea eax, [ebx + 0xf0]
mov dword [ebp - 0x9c], eax
mov edi, dword [ebx + 0x104]
cmp esi, edi
mov ecx, edi
jle 0x7003cd99
mov edx, dword [ebx + 0xf8]
nop
lea esi, [esi]
add edx, 2
cmp edx, dword [ebx + 0xf4]
mov dword [ebx + 0xf8], edx
je 0x7003cc60
movzx eax, word [edx]
lea edi, [ecx + 0x10]
mov dword [ebx + 0x104], edi
shl eax, cl
mov ecx, edi
or eax, dword [ebx + 0x108]
cmp esi, edi
mov dword [ebx + 0x108], eax
jg 0x7003cb10
cmp edi, 0x20
jle 0x7003cca3
mov edx, dword [ebx + 0xf8]
sub edi, esi
mov ecx, 0x10
sub ecx, edi
mov dword [ebx + 0x104], edi
movzx edx, word [edx]
sar edx, cl
mov dword [ebx + 0x108], edx
mov edi, dword [ebp - 0x70]
mov ecx, esi
and eax, dword [ebp - 0x80]
mov edx, dword [edi]
shl edx, cl
or eax, edx
mov edx, dword [ebp - 0x7c]
test edx, edx
je 0x7003cc80
movzx ecx, byte [ebp - 0x7c]
shl eax, cl
mov dword [edi], eax
mov edi, dword [ebp - 0x74]
mov edx, eax
movzx eax, ax
shr edx, 0x10
lea eax, [eax + eax*2]
add dword [ebp - 0x70], 4
lea ecx, [edi + edi*8]
add edx, ecx
add eax, edx
sub dword [ebp - 0x84], 1
mov dword [ebp - 0x74], eax
jne 0x7003caf5
mov eax, dword [ebp - 0x74]
mov dword [ebx + 0xb0], eax
mov ebx, dword [ebp - 0xa0]
test ebx, ebx
je 0x7003cd5a
mov eax, dword [ebp - 0x78]
and eax, 3
cmp eax, 1
je 0x7003ded7
jb 0x7003df00
cmp eax, 2
je 0x7003d1ae
mov eax, dword [ebp - 0x94]
mov esi, 0x80000000
mov ecx, eax
sar esi, cl
mov edi, esi
shl edi, cl
mov dword [ebp - 0x70], edi
mov edi, 0x7fffffff
sar edi, cl
mov ebx, edi
shl ebx, cl
mov dword [ebp - 0x74], ebx
mov eax, dword [ebp + 0x10]
test dword [ebp - 0x78], 0x40000004
mov ecx, dword [ebp - 0x94]
lea edx, [eax + eax]
cmovne edx, eax
mov eax, dword [ebp + 0xc]
add eax, 4
jmp 0x7003cc39
mov ebx, dword [ebp - 0x70]
mov dword [eax - 4], ebx
add eax, 4
sub edx, 1
cmp edx, 0xffffffff
je 0x7003c007
mov ebx, dword [eax - 4]
cmp ebx, esi
jl 0x7003cc30
cmp ebx, edi
jle 0x7003d238
mov ebx, dword [ebp - 0x74]
mov dword [eax - 4], ebx
jmp 0x7003cc36
mov eax, dword [ebp - 0x9c]
mov dword [esp], eax
call dword [ebx + 0xfc]
mov edx, dword [ebx + 0xf8]
mov ecx, dword [ebx + 0x104]
jmp 0x7003cb25
mov ecx, dword [ebp - 0x88]
test ecx, ecx
je 0x7003ccc0
movzx ecx, byte [ebp - 0x88]
add eax, 1
mov edi, dword [ebp - 0x70]
shl eax, cl
sub eax, 1
mov dword [edi], eax
jmp 0x7003cb8f
mov edx, eax
mov ecx, esi
sub edi, esi
shr edx, cl
mov dword [ebx + 0x104], edi
mov dword [ebx + 0x108], edx
jmp 0x7003cb6e
mov edx, dword [ebp - 0xa4]
test edx, edx
je 0x7003ccdc
movzx ecx, byte [ebp - 0xa4]
mov edx, eax
and edx, 1
add eax, edx
shl eax, cl
sub eax, edx
mov edi, dword [ebp - 0x70]
mov dword [edi], eax
jmp 0x7003cb8f
mov edx, ebx
imul edx, eax
add edx, 0x200
sar edx, 0xa
neg edx
jmp 0x7003c440
mov edx, ebx
imul edx, eax
add edx, 0x200
sar edx, 0xa
neg edx
jmp 0x7003c3a9
mov edx, esi
imul edx, eax
add edx, 0x200
sar edx, 0xa
neg edx
jmp 0x7003c56b
mov edx, dword [ebp - 0x88]
imul edx, dword [eax + 0xc]
add edx, 0x200
sar edx, 0xa
jmp 0x7003c7c8
imul edx, dword [eax + 8]
add edx, 0x200
sar edx, 0xa
jmp 0x7003c931
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x7003c007
mov eax, dword [ebp + 0x10]
add eax, eax
test dword [ebp - 0x78], 0x40000004
cmovne eax, dword [ebp + 0x10]
test eax, eax
lea edx, [eax - 1]
je 0x7003c007
mov eax, dword [ebp + 0xc]
add eax, 4
sub edx, 1
shl dword [eax - 4], cl
cmp edx, 0xffffffff
jne 0x7003cd86
jmp 0x7003c007
mov eax, dword [ebx + 0x108]
jmp 0x7003cb45
mov eax, dword [ebp + 0x10]
shl eax, 3
jmp 0x7003bb8a
shl dword [ebp - 0x9c], 1
test dword [ebp - 0x90], 0x40000004
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
je 0x7003cf05
lea edi, [edi + esi*4]
test eax, eax
mov dword [ebp - 0x74], edi
je 0x7003e065
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x74]
cmp ebx, eax
jae 0x7003e387
mov esi, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x74]
jmp 0x7003cdfa
cmp edi, ebx
jbe 0x7003e030
xor edx, edx
mov ecx, esi
mov dword [esp], 0
add ebx, 4
call fcn.700412c0
sub esp, 4
cmp eax, 0x80000000
mov dword [ebx - 4], eax
jne 0x7003cdf2
sub ebx, dword [ebp + 0xc]
mov dword [ebp - 0x94], ebx
sar dword [ebp - 0x94], 2
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x7c], 0
add eax, 0x160
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
mov edi, dword [eax]
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x84]
lea esi, [eax - 1]
test eax, eax
mov dword [ebp - 0x6c], esi
je 0x7003d1f0
mov eax, dword [ebp - 0x78]
jmp 0x7003ceda
and ebx, 1
mov ecx, dword [eax + 0x10]
je 0x7003d1e2
lea edx, [ecx + ecx]
sub edx, dword [eax + 0x14]
mov dword [eax + 0x14], ecx
movsx ecx, dx
xor ebx, ebx
cmp ecx, edx
je 0x7003cef4
mov esi, edx
movzx ecx, dx
xor si, si
imul ecx, dword [eax + 8]
sar esi, 9
imul esi, dword [eax + 8]
sar ecx, 9
lea ecx, [ecx + esi + 1]
sar ecx, 1
add ecx, edi
test edx, edx
je 0x7003cec3
test edi, edi
je 0x7003cec3
mov esi, dword [eax + 4]
xor edx, edi
sar edx, 0x1f
xor esi, edx
sub esi, edx
add dword [eax + 8], esi
sub dword [ebp - 0x6c], 1
mov dword [eax + ebx*4 + 0x10], ecx
add eax, 0x60
cmp dword [ebp - 0x6c], 0xffffffff
je 0x7003d1f2
mov edi, ecx
mov ebx, dword [eax]
cmp ebx, 8
jg 0x7003ce70
mov esi, dword [ebp - 0x7c]
mov edx, dword [eax + esi*4 + 0x10]
add ebx, esi
and ebx, 7
movsx ecx, dx
cmp ecx, edx
jne 0x7003ce8e
mov ecx, dword [eax + 8]
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
jmp 0x7003ceaa
lea edi, [edi + esi*8]
test eax, eax
mov dword [ebp - 0x6c], edi
je 0x7003e03e
mov ebx, dword [ebp + 0xc]
cmp ebx, edi
jae 0x7003d1d7
mov esi, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x6c]
jmp 0x7003cf5b
mov dword [esp], 0
mov edx, 1
mov ecx, esi
call fcn.700412c0
sub esp, 4
cmp eax, 0x80000000
mov dword [ebx + 4], eax
je 0x7003cf77
add ebx, 8
cmp edi, ebx
jbe 0x7003e0a0
xor edx, edx
mov ecx, esi
mov dword [esp], 0
call fcn.700412c0
sub esp, 4
cmp eax, 0x80000000
mov dword [ebx], eax
jne 0x7003cf30
sub ebx, dword [ebp + 0xc]
mov dword [ebp - 0x94], ebx
sar dword [ebp - 0x94], 2
shr dword [ebp - 0x94], 1
mov edi, dword [ebp - 0x8c]
mov eax, dword [edi + 0x84]
add edi, 0x160
lea esi, [eax - 1]
test eax, eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x7c], esi
je 0x7003de02
cmp dword [ebp - 0x70], 0xf
ja 0x7003d199
lea esi, [esi]
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x7003d242
mov ecx, dword [edi]
cmp ecx, 0x11
je 0x7003dcac
cmp ecx, 0x12
je 0x7003dcd2
lea eax, [ecx - 1]
cmp eax, 6
ja 0x7003dccb
mov eax, dword [edi + 0x60]
mov dword [ebp - 0x74], eax
sub eax, 1
cmp eax, 6
ja 0x7003dccb
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x7c], 0
mov esi, eax
mov eax, dword [ebp - 0x6c]
cmp esi, eax
jae 0x7003d16a
mov dword [ebp - 0x80], ecx
mov edx, esi
mov eax, dword [edi + 8]
mov ebx, dword [edx]
mov esi, dword [ebp - 0x80]
mov ecx, eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x7c]
lea esi, [edi + esi*4]
mov dword [ebp - 0x88], esi
lea eax, [edi + eax*4]
imul ecx, dword [eax + 0x10]
add ecx, 0x200
sar ecx, 0xa
add ecx, ebx
mov dword [esi + 0x10], ecx
mov esi, dword [eax + 0x10]
test esi, esi
je 0x7003d078
test ebx, ebx
je 0x7003d078
xor ebx, esi
mov esi, dword [edi + 4]
sar ebx, 0x1f
xor esi, ebx
mov dword [ebp - 0xa0], esi
mov esi, dword [ebp - 0x84]
sub esi, ebx
mov ebx, dword [ebp - 0xa0]
add ebx, esi
mov dword [edi + 8], ebx
mov ebx, dword [edi + 0x68]
imul ebx, dword [eax + 0x70]
mov esi, dword [ebp - 0x74]
add ebx, 0x200
sar ebx, 0xa
add ebx, ecx
lea esi, [edi + esi*4]
mov dword [esi + 0x70], ebx
mov dword [edx], ebx
mov ebx, dword [eax + 0x70]
mov dword [ebp - 0x84], esi
test ebx, ebx
je 0x7003d0b5
test ecx, ecx
je 0x7003d0b5
xor ebx, ecx
mov ecx, dword [edi + 0x64]
sar ebx, 0x1f
xor ecx, ebx
sub ecx, ebx
add dword [edi + 0x68], ecx
mov esi, dword [edi + 0xc]
mov ecx, dword [edx + 4]
mov ebx, dword [ebp - 0x88]
mov dword [ebp - 0xa0], esi
imul esi, dword [eax + 0x30]
add esi, 0x200
sar esi, 0xa
add esi, ecx
mov dword [ebx + 0x30], esi
mov ebx, dword [eax + 0x30]
test ebx, ebx
je 0x7003d105
test ecx, ecx
je 0x7003d105
xor ecx, ebx
mov ebx, dword [edi + 4]
sar ecx, 0x1f
xor ebx, ecx
mov dword [ebp - 0x88], ebx
mov ebx, dword [ebp - 0xa0]
sub ebx, ecx
add ebx, dword [ebp - 0x88]
mov dword [edi + 0xc], ebx
mov ecx, dword [edi + 0x6c]
imul ecx, dword [eax + 0x90]
mov ebx, dword [ebp - 0x84]
add ecx, 0x200
sar ecx, 0xa
add ecx, esi
mov dword [ebx + 0x90], ecx
mov dword [edx + 4], ecx
mov eax, dword [eax + 0x90]
test eax, eax
je 0x7003d146
test esi, esi
je 0x7003d146
xor eax, esi
sar eax, 0x1f
mov ecx, eax
xor eax, dword [edi + 0x64]
sub eax, ecx
add dword [edi + 0x6c], eax
add dword [ebp - 0x7c], 1
add edx, 8
add dword [ebp - 0x80], 1
add dword [ebp - 0x74], 1
and dword [ebp - 0x7c], 7
and dword [ebp - 0x80], 7
and dword [ebp - 0x74], 7
cmp dword [ebp - 0x6c], edx
ja 0x7003d019
mov eax, dword [ebp - 0x78]
add edi, 0x60
sub eax, 2
mov dword [ebp - 0x7c], eax
mov esi, dword [ebp - 0x7c]
add edi, 0x60
mov eax, esi
sub eax, 1
test esi, esi
je 0x7003de02
cmp dword [ebp - 0x70], 0xf
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], eax
jbe 0x7003cfc0
mov edx, dword [edi]
lea eax, [edx + 3]
cmp eax, 0x15
ja case.0x7003d1a7.0
jmp dword [eax*4 + 0x70794c00]
mov eax, dword [ebp - 0x94]
mov esi, 0xff800000
mov ecx, eax
sar esi, cl
mov edi, esi
shl edi, cl
mov dword [ebp - 0x70], edi
mov edi, 0x7fffff
sar edi, cl
mov ebx, edi
shl ebx, cl
mov dword [ebp - 0x74], ebx
jmp 0x7003cc11
mov dword [ebp - 0x94], esi
jmp 0x7003cf8d
mov edx, ecx
sub edx, dword [eax + 0x14]
sar edx, 1
add edx, ecx
jmp 0x7003ce82
mov ecx, edi
mov edx, ecx
sar edx, 0x1f
mov eax, edx
xor eax, ecx
sub eax, edx
cmp eax, dword [ebp - 0x9c]
jg 0x7003dfb9
mov eax, dword [ebp - 0x98]
add dword [ebp - 0x70], 4
add dword [ebp - 0x7c], 1
mov edi, dword [ebp - 0x70]
and dword [ebp - 0x7c], 7
lea eax, [ecx + eax*2]
add dword [ebp - 0x98], eax
cmp dword [ebp - 0x74], edi
mov dword [edi - 4], ecx
ja 0x7003ce45
jmp 0x7003be6c
shl ebx, cl
mov dword [eax - 4], ebx
jmp 0x7003cc36
mov edx, dword [edi]
lea eax, [edx + 3]
cmp eax, 0x15
ja case.0x7003d250.0
jmp dword [eax*4 + 0x70794c58]
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x6c]
cmp eax, esi
jae 0x7003d176
mov ecx, dword [edi + 0x10]
lea edx, [ecx + ecx]
sub edx, dword [edi + 0x14]
mov dword [edi + 0x14], ecx
mov ecx, dword [edi + 8]
mov esi, dword [eax]
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
add ecx, esi
test esi, esi
mov dword [edi + 0x10], ecx
mov dword [eax], ecx
je 0x7003d2a3
test edx, edx
je 0x7003d2a3
xor edx, esi
sar edx, 0x1f
mov ecx, edx
xor edx, dword [edi + 4]
sub edx, ecx
add dword [edi + 8], edx
mov ecx, dword [edi + 0x30]
lea edx, [ecx + ecx]
sub edx, dword [edi + 0x34]
mov dword [edi + 0x34], ecx
mov ecx, dword [edi + 0xc]
mov esi, dword [eax + 4]
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
add ecx, esi
test esi, esi
mov dword [edi + 0x30], ecx
mov dword [eax + 4], ecx
je 0x7003d2e0
test edx, edx
je 0x7003d2e0
xor edx, esi
sar edx, 0x1f
mov ecx, edx
xor edx, dword [edi + 4]
sub edx, ecx
add dword [edi + 0xc], edx
add eax, 8
cmp ebx, eax
ja 0x7003d268
jmp 0x7003d176
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x6c]
cmp eax, esi
jae 0x7003d176
lea esi, [esi]
mov esi, dword [edi + 8]
mov edx, dword [edi + 0x10]
mov ebx, dword [eax]
mov ecx, esi
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
add ecx, ebx
test edx, edx
je 0x7003d341
test ebx, ebx
je 0x7003d341
xor edx, ebx
mov ebx, 0x400
sar edx, 0x1f
xor esi, edx
sub esi, edx
add esi, dword [edi + 4]
cmp esi, 0x401
cmovge esi, ebx
xor esi, edx
sub esi, edx
mov dword [edi + 8], esi
mov dword [eax], ecx
mov ebx, dword [edi + 0xc]
mov edx, ecx
imul edx, ebx
add edx, 0x200
sar edx, 0xa
add edx, dword [eax + 4]
test ecx, ecx
mov dword [edi + 0x10], edx
je 0x7003d386
mov esi, dword [eax + 4]
test esi, esi
je 0x7003d386
xor ecx, esi
mov esi, 0x400
sar ecx, 0x1f
xor ebx, ecx
sub ebx, ecx
add ebx, dword [edi + 4]
cmp ebx, 0x401
cmovge ebx, esi
xor ebx, ecx
sub ebx, ecx
mov dword [edi + 0xc], ebx
mov dword [eax + 4], edx
add eax, 8
cmp dword [ebp - 0x6c], eax
ja 0x7003d300
jmp 0x7003d176
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x6c]
cmp eax, esi
jae 0x7003d176
mov esi, dword [edi + 0xc]
mov edx, dword [edi + 0x30]
mov ebx, dword [eax + 4]
mov ecx, esi
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
add ecx, ebx
test edx, edx
je 0x7003d3ea
test ebx, ebx
je 0x7003d3ea
xor edx, ebx
mov ebx, 0x400
sar edx, 0x1f
xor esi, edx
sub esi, edx
add esi, dword [edi + 4]
cmp esi, 0x401
cmovge esi, ebx
xor esi, edx
sub esi, edx
mov dword [edi + 0xc], esi
mov dword [eax + 4], ecx
mov ebx, dword [edi + 8]
mov edx, ecx
imul edx, ebx
add edx, 0x200
sar edx, 0xa
add edx, dword [eax]
test ecx, ecx
mov dword [edi + 0x30], edx
je 0x7003d42e
mov esi, dword [eax]
test esi, esi
je 0x7003d42e
xor ecx, esi
mov esi, 0x400
sar ecx, 0x1f
xor ebx, ecx
sub ebx, ecx
add ebx, dword [edi + 4]
cmp ebx, 0x401
cmovge ebx, esi
xor ebx, ecx
sub ebx, ecx
mov dword [edi + 8], ebx
mov dword [eax], edx
add eax, 8
cmp dword [ebp - 0x6c], eax
ja 0x7003d3a8
jmp 0x7003d176
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x6c]
cmp eax, esi
jae 0x7003d176
nop
mov ebx, dword [edi + 8]
mov edx, dword [edi + 0x10]
mov ecx, dword [eax]
mov esi, ebx
imul esi, edx
add esi, 0x200
sar esi, 0xa
add esi, ecx
test edx, edx
mov dword [ebp - 0x74], esi
je 0x7003d494
test ecx, ecx
je 0x7003d494
xor edx, ecx
mov esi, 0x400
sar edx, 0x1f
xor ebx, edx
sub ebx, edx
add ebx, dword [edi + 4]
cmp ebx, 0x401
cmovge ebx, esi
xor ebx, edx
sub ebx, edx
mov dword [edi + 8], ebx
mov esi, dword [edi + 0xc]
mov ecx, dword [edi + 0x30]
mov ebx, dword [eax + 4]
mov edx, esi
imul edx, ecx
add edx, 0x200
sar edx, 0xa
add edx, ebx
test ecx, ecx
je 0x7003d4d6
test ebx, ebx
je 0x7003d4d6
xor ecx, ebx
mov ebx, 0x400
sar ecx, 0x1f
xor esi, ecx
sub esi, ecx
add esi, dword [edi + 4]
cmp esi, 0x401
cmovge esi, ebx
xor esi, ecx
sub esi, ecx
mov dword [edi + 0xc], esi
mov esi, dword [ebp - 0x74]
add eax, 8
mov dword [edi + 0x30], esi
mov dword [eax - 8], esi
mov dword [edi + 0x10], edx
mov dword [eax - 4], edx
cmp dword [ebp - 0x6c], eax
ja 0x7003d450
jmp 0x7003d176
mov eax, dword [ebp - 0x6c]
and edx, 7
cmp dword [ebp + 0xc], eax
mov dword [ebp - 0x78], edx
jae 0x7003d176
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x78]
lea ebx, [edi + eax*4]
mov eax, dword [edi + 8]
mov edx, dword [ebx + 0x10]
lea ecx, [edi + ecx*4]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x84], eax
imul eax, edx
add eax, 0x200
sar eax, 0xa
add eax, dword [esi]
test edx, edx
mov dword [ecx + 0x10], eax
je 0x7003d56a
mov ecx, dword [esi]
test ecx, ecx
je 0x7003d56a
xor edx, ecx
mov ecx, dword [edi + 4]
sar edx, 0x1f
xor ecx, edx
mov dword [ebp - 0x88], ecx
mov ecx, dword [ebp - 0x84]
sub ecx, edx
mov edx, dword [ebp - 0x88]
add edx, ecx
mov dword [edi + 8], edx
mov dword [esi], eax
mov edx, dword [ebx + 0x30]
mov ebx, dword [edi + 0xc]
mov ecx, dword [ebp - 0x80]
mov eax, edx
imul eax, ebx
add eax, 0x200
sar eax, 0xa
add eax, dword [esi + 4]
test edx, edx
mov dword [ecx + 0x30], eax
je 0x7003d5a4
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x7003d5a4
xor edx, ecx
mov ecx, dword [edi + 4]
sar edx, 0x1f
sub ebx, edx
xor ecx, edx
add ecx, ebx
mov dword [edi + 0xc], ecx
add dword [ebp - 0x74], 1
add esi, 8
add dword [ebp - 0x78], 1
and dword [ebp - 0x74], 7
and dword [ebp - 0x78], 7
mov dword [esi - 4], eax
cmp dword [ebp - 0x6c], esi
ja 0x7003d512
jmp 0x7003d176
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x6c]
cmp eax, esi
jae 0x7003d176
lea esi, [esi]
mov edx, dword [edi + 0x10]
mov ecx, edx
sub ecx, dword [edi + 0x14]
mov dword [edi + 0x14], edx
mov esi, dword [eax]
sar ecx, 1
add ecx, edx
mov edx, dword [edi + 8]
imul edx, ecx
add edx, 0x200
sar edx, 0xa
add edx, esi
test esi, esi
mov dword [edi + 0x10], edx
mov dword [eax], edx
je 0x7003d61e
test ecx, ecx
je 0x7003d61e
mov edx, dword [edi + 4]
xor ecx, esi
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add dword [edi + 8], edx
mov edx, dword [edi + 0x30]
mov ecx, edx
sub ecx, dword [edi + 0x34]
mov dword [edi + 0x34], edx
mov esi, dword [eax + 4]
sar ecx, 1
add ecx, edx
mov edx, dword [edi + 0xc]
imul edx, ecx
add edx, 0x200
sar edx, 0xa
add edx, esi
test esi, esi
mov dword [edi + 0x30], edx
mov dword [eax + 4], edx
je 0x7003d65e
test ecx, ecx
je 0x7003d65e
mov edx, dword [edi + 4]
xor ecx, esi
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add dword [edi + 0xc], edx
add eax, 8
cmp ebx, eax
ja 0x7003d5e0
jmp 0x7003d176
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x6c]
cmp eax, esi
jb 0x7003d723
jmp 0x7003d176
mov esi, dword [edi + 8]
mov ebx, edx
movzx ecx, dx
xor bx, bx
sar ebx, 9
imul ecx, esi
imul ebx, esi
sar ecx, 9
lea ecx, [ecx + ebx + 1]
sar ecx, 1
mov ebx, dword [eax]
add ecx, ebx
test ebx, ebx
mov dword [edi + 0x10], ecx
mov dword [eax], ecx
je 0x7003d6be
test edx, edx
je 0x7003d6be
xor edx, ebx
sar edx, 0x1f
mov ecx, edx
xor edx, dword [edi + 4]
sub edx, ecx
add dword [edi + 8], edx
mov ecx, dword [edi + 0x30]
mov edx, ecx
sub edx, dword [edi + 0x34]
mov dword [edi + 0x34], ecx
sar edx, 1
add edx, ecx
movsx ecx, dx
cmp edx, ecx
je 0x7003dc62
mov esi, dword [edi + 0xc]
mov ebx, edx
movzx ecx, dx
xor bx, bx
sar ebx, 9
imul ecx, esi
imul ebx, esi
sar ecx, 9
lea ecx, [ecx + ebx + 1]
sar ecx, 1
mov ebx, dword [eax + 4]
add ecx, ebx
test ebx, ebx
mov dword [edi + 0x30], ecx
mov dword [eax + 4], ecx
je 0x7003d717
test edx, edx
je 0x7003d717
xor edx, ebx
sar edx, 0x1f
mov ecx, edx
xor edx, dword [edi + 4]
sub edx, ecx
add dword [edi + 0xc], edx
add eax, 8
cmp dword [ebp - 0x6c], eax
jbe 0x7003d176
mov ecx, dword [edi + 0x10]
mov edx, ecx
sub edx, dword [edi + 0x14]
mov dword [edi + 0x14], ecx
sar edx, 1
add edx, ecx
movsx ecx, dx
cmp edx, ecx
jne 0x7003d681
mov ecx, dword [edi + 8]
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
jmp 0x7003d69e
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x6c]
cmp edx, eax
jb 0x7003d803
jmp 0x7003d176
mov esi, dword [edi + 8]
mov ebx, eax
movzx ecx, ax
xor bx, bx
sar ebx, 9
imul ecx, esi
imul ebx, esi
sar ecx, 9
lea ecx, [ecx + ebx + 1]
sar ecx, 1
mov ebx, dword [edx]
add ecx, ebx
test ebx, ebx
mov dword [edi + 0x10], ecx
mov dword [edx], ecx
je 0x7003d7a1
test eax, eax
je 0x7003d7a1
xor eax, ebx
sar eax, 0x1f
mov ecx, eax
xor eax, dword [edi + 4]
sub eax, ecx
add dword [edi + 8], eax
mov ecx, dword [edi + 0x30]
lea eax, [ecx + ecx]
sub eax, dword [edi + 0x34]
mov dword [edi + 0x34], ecx
movsx ecx, ax
cmp eax, ecx
je 0x7003dc4e
mov esi, dword [edi + 0xc]
mov ebx, eax
movzx ecx, ax
xor bx, bx
sar ebx, 9
imul ecx, esi
imul ebx, esi
sar ecx, 9
lea ecx, [ecx + ebx + 1]
sar ecx, 1
mov ebx, dword [edx + 4]
add ecx, ebx
test ebx, ebx
mov dword [edi + 0x30], ecx
mov dword [edx + 4], ecx
je 0x7003d7f7
test eax, eax
je 0x7003d7f7
xor eax, ebx
sar eax, 0x1f
mov ecx, eax
xor eax, dword [edi + 4]
sub eax, ecx
add dword [edi + 0xc], eax
add edx, 8
cmp dword [ebp - 0x6c], edx
jbe 0x7003d176
mov ecx, dword [edi + 0x10]
lea eax, [ecx + ecx]
sub eax, dword [edi + 0x14]
mov dword [edi + 0x14], ecx
movsx ecx, ax
cmp eax, ecx
jne 0x7003d764
mov ecx, dword [edi + 8]
imul ecx, eax
add ecx, 0x200
sar ecx, 0xa
jmp 0x7003d781
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x6c]
cmp esi, eax
jb 0x7003d8f9
jmp 0x7003d176
mov ecx, eax
movzx edx, ax
xor cx, cx
imul edx, dword [edi + 8]
sar ecx, 9
imul ecx, dword [edi + 8]
sar edx, 9
lea edx, [edx + ecx + 1]
sar edx, 1
add edx, ebx
test eax, eax
je 0x7003d88a
test ebx, ebx
je 0x7003d88a
xor eax, ebx
mov ebx, 0x400
sar eax, 0x1f
mov ecx, eax
xor eax, dword [edi + 8]
sub eax, ecx
add eax, dword [edi + 4]
cmp eax, 0x401
cmovge eax, ebx
xor eax, ecx
sub eax, ecx
mov dword [edi + 8], eax
movsx eax, dx
mov ebx, dword [esi + 4]
cmp edx, eax
mov dword [esi], edx
je 0x7003dc3b
mov ecx, edx
movzx eax, dx
xor cx, cx
imul eax, dword [edi + 0xc]
sar ecx, 9
imul ecx, dword [edi + 0xc]
sar eax, 9
lea eax, [eax + ecx + 1]
sar eax, 1
add eax, ebx
test edx, edx
mov dword [edi + 0x10], eax
je 0x7003d8ea
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x7003d8ea
xor ecx, edx
mov edx, dword [edi + 0xc]
mov ebx, 0x400
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add edx, dword [edi + 4]
cmp edx, 0x401
cmovge edx, ebx
xor edx, ecx
sub edx, ecx
mov dword [edi + 0xc], edx
mov dword [esi + 4], eax
add esi, 8
cmp dword [ebp - 0x6c], esi
jbe 0x7003d176
mov eax, dword [edi + 0x10]
mov ebx, dword [esi]
movsx edx, ax
cmp eax, edx
jne 0x7003d841
mov edx, dword [edi + 8]
imul edx, eax
add edx, 0x200
sar edx, 0xa
jmp 0x7003d85d
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x6c]
cmp esi, eax
jb 0x7003d9e6
jmp 0x7003d176
mov ecx, eax
movzx edx, ax
xor cx, cx
imul edx, dword [edi + 0xc]
sar ecx, 9
imul ecx, dword [edi + 0xc]
sar edx, 9
lea edx, [edx + ecx + 1]
sar edx, 1
add edx, ebx
test eax, eax
je 0x7003d979
test ebx, ebx
je 0x7003d979
xor eax, ebx
mov ebx, 0x400
sar eax, 0x1f
mov ecx, eax
xor eax, dword [edi + 0xc]
sub eax, ecx
add eax, dword [edi + 4]
cmp eax, 0x401
cmovge eax, ebx
xor eax, ecx
sub eax, ecx
mov dword [edi + 0xc], eax
movsx eax, dx
mov ebx, dword [esi]
cmp edx, eax
mov dword [esi + 4], edx
je 0x7003dc28
mov ecx, edx
movzx eax, dx
xor cx, cx
imul eax, dword [edi + 8]
sar ecx, 9
imul ecx, dword [edi + 8]
sar eax, 9
lea eax, [eax + ecx + 1]
sar eax, 1
add eax, ebx
test edx, edx
mov dword [edi + 0x30], eax
je 0x7003d9d8
mov ecx, dword [esi]
test ecx, ecx
je 0x7003d9d8
xor ecx, edx
mov edx, dword [edi + 8]
mov ebx, 0x400
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add edx, dword [edi + 4]
cmp edx, 0x401
cmovge edx, ebx
xor edx, ecx
sub edx, ecx
mov dword [edi + 8], edx
mov dword [esi], eax
add esi, 8
cmp dword [ebp - 0x6c], esi
jbe 0x7003d176
mov eax, dword [edi + 0x30]
mov ebx, dword [esi + 4]
movsx edx, ax
cmp eax, edx
jne 0x7003d930
mov edx, dword [edi + 0xc]
imul edx, eax
add edx, 0x200
sar edx, 0xa
jmp 0x7003d94c
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x6c]
cmp esi, eax
jb 0x7003dae7
jmp 0x7003d176
mov ecx, eax
movzx edx, ax
xor cx, cx
imul edx, dword [edi + 8]
sar ecx, 9
imul ecx, dword [edi + 8]
sar edx, 9
lea ecx, [edx + ecx + 1]
sar ecx, 1
add ecx, ebx
test eax, eax
je 0x7003da67
test ebx, ebx
je 0x7003da67
xor eax, ebx
mov ebx, 0x400
cdq
mov eax, dword [edi + 8]
xor eax, edx
sub eax, edx
add eax, dword [edi + 4]
cmp eax, 0x401
cmovge eax, ebx
xor eax, edx
sub eax, edx
mov dword [edi + 8], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x74], eax
mov eax, dword [edi + 0x30]
movsx edx, ax
cmp eax, edx
je 0x7003dc14
mov ebx, eax
movzx edx, ax
xor bx, bx
imul edx, dword [edi + 0xc]
sar ebx, 9
imul ebx, dword [edi + 0xc]
sar edx, 9
lea edx, [edx + ebx + 1]
sar edx, 1
add edx, dword [ebp - 0x74]
test eax, eax
je 0x7003dacf
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0x7003dacf
xor eax, dword [ebp - 0x74]
sar eax, 0x1f
mov ebx, eax
xor eax, dword [edi + 0xc]
mov dword [ebp - 0x74], ebx
sub eax, ebx
mov ebx, 0x400
add eax, dword [edi + 4]
cmp eax, 0x401
cmovge eax, ebx
mov ebx, dword [ebp - 0x74]
xor eax, ebx
sub eax, ebx
mov dword [edi + 0xc], eax
mov dword [edi + 0x30], ecx
add esi, 8
mov dword [esi - 8], ecx
mov dword [edi + 0x10], edx
mov dword [esi - 4], edx
cmp dword [ebp - 0x6c], esi
jbe 0x7003d176
mov eax, dword [edi + 0x10]
mov ebx, dword [esi]
movsx edx, ax
cmp eax, edx
jne 0x7003da20
mov ecx, dword [edi + 8]
imul ecx, eax
add ecx, 0x200
sar ecx, 0xa
jmp 0x7003da3c
mov eax, dword [ebp - 0x6c]
and edx, 7
cmp dword [ebp + 0xc], eax
mov dword [ebp - 0x78], edx
jae 0x7003d176
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x74], 0
jmp 0x7003dbd8
mov ebx, eax
movzx ecx, ax
xor bx, bx
imul ecx, dword [edi + 8]
sar ebx, 9
imul ebx, dword [edi + 8]
sar ecx, 9
lea ecx, [ecx + ebx + 1]
sar ecx, 1
mov ebx, dword [ebp - 0x78]
add ecx, dword [esi]
test eax, eax
lea ebx, [edi + ebx*4]
mov dword [ebx + 0x10], ecx
je 0x7003db6a
mov edx, dword [esi]
test edx, edx
je 0x7003db6a
xor eax, edx
cdq
mov eax, dword [edi + 4]
xor eax, edx
sub eax, edx
add dword [edi + 8], eax
mov eax, dword [ebp - 0x80]
mov dword [esi], ecx
mov eax, dword [eax + 0x30]
movsx edx, ax
cmp eax, edx
je 0x7003dc03
mov ecx, eax
movzx edx, ax
xor cx, cx
imul edx, dword [edi + 0xc]
sar ecx, 9
imul ecx, dword [edi + 0xc]
sar edx, 9
lea edx, [edx + ecx + 1]
sar edx, 1
add edx, dword [esi + 4]
test eax, eax
mov dword [ebx + 0x30], edx
je 0x7003dbb9
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x7003dbb9
xor ecx, eax
mov eax, dword [edi + 4]
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
add dword [edi + 0xc], eax
add dword [ebp - 0x74], 1
add esi, 8
add dword [ebp - 0x78], 1
and dword [ebp - 0x74], 7
and dword [ebp - 0x78], 7
mov dword [esi - 4], edx
cmp dword [ebp - 0x6c], esi
jbe 0x7003d176
mov eax, dword [ebp - 0x74]
lea eax, [edi + eax*4]
mov dword [ebp - 0x80], eax
mov eax, dword [eax + 0x10]
movsx ecx, ax
cmp eax, ecx
jne 0x7003db2c
mov ecx, dword [edi + 8]
imul ecx, eax
add ecx, 0x200
sar ecx, 0xa
jmp 0x7003db48
mov edx, dword [edi + 0xc]
imul edx, eax
add edx, 0x200
sar edx, 0xa
jmp 0x7003db99
mov edx, dword [edi + 0xc]
imul edx, eax
add edx, 0x200
sar edx, 0xa
jmp 0x7003da97
mov eax, dword [edi + 8]
imul eax, edx
add eax, 0x200
sar eax, 0xa
jmp 0x7003d9a5
mov eax, dword [edi + 0xc]
imul eax, edx
add eax, 0x200
sar eax, 0xa
jmp 0x7003d8b6
mov ecx, dword [edi + 0xc]
imul ecx, eax
add ecx, 0x200
sar ecx, 0xa
jmp 0x7003d7d5
mov ecx, dword [edi + 0xc]
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
jmp 0x7003d6f5
lea eax, [edx + 1]
test edx, edx
lea ecx, [edx - 1]
cmovns eax, ecx
mov edx, eax
jmp 0x7003c463
lea ecx, [edx + 1]
test edx, edx
lea eax, [edx - 1]
mov edx, ecx
cmovns edx, eax
jmp 0x7003c3d6
lea ebx, [edx + 1]
test edx, edx
lea eax, [edx - 1]
cmovns ebx, eax
mov edx, ebx
jmp 0x7003c593
mov eax, dword [edi + 0x60]
cmp eax, 0x11
je 0x7003e25a
cmp eax, 0x12
je 0x7003e13a
mov edx, 0x11
jmp 0x7003d244
mov edx, ecx
jmp 0x7003d244
cmp dword [edi + 0x60], 0x12
jne case.0x7003d250.18
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x6c]
cmp esi, eax
jae 0x7003d16a
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 8]
mov edx, eax
sub edx, dword [edi + 0x14]
mov dword [edi + 0x14], eax
sar edx, 1
add edx, eax
mov eax, edx
imul eax, ecx
add eax, 0x200
sar eax, 0xa
add eax, dword [esi]
test edx, edx
mov dword [edi + 0x10], eax
je 0x7003dd29
mov ebx, dword [esi]
test ebx, ebx
je 0x7003dd29
xor edx, ebx
mov ebx, dword [edi + 4]
sar edx, 0x1f
sub ecx, edx
xor ebx, edx
add ebx, ecx
mov dword [edi + 8], ebx
mov edx, dword [edi + 0x70]
mov ecx, edx
sub ecx, dword [edi + 0x74]
mov dword [edi + 0x74], edx
sar ecx, 1
add ecx, edx
mov edx, dword [edi + 0x68]
imul edx, ecx
add edx, 0x200
sar edx, 0xa
add eax, edx
test ecx, ecx
mov dword [edi + 0x70], eax
mov dword [esi], eax
je 0x7003dd66
mov eax, dword [edi + 0x10]
test eax, eax
je 0x7003dd66
xor eax, ecx
cdq
mov eax, dword [edi + 0x64]
xor eax, edx
sub eax, edx
add dword [edi + 0x68], eax
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0xc]
mov edx, eax
sub edx, dword [edi + 0x34]
mov dword [edi + 0x34], eax
sar edx, 1
add edx, eax
mov eax, edx
imul eax, ecx
add eax, 0x200
sar eax, 0xa
add eax, dword [esi + 4]
test edx, edx
mov dword [edi + 0x30], eax
je 0x7003dda7
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x7003dda7
xor edx, ebx
mov ebx, dword [edi + 4]
sar edx, 0x1f
sub ecx, edx
xor ebx, edx
add ebx, ecx
mov dword [edi + 0xc], ebx
mov edx, dword [edi + 0x90]
mov ecx, edx
sub ecx, dword [edi + 0x94]
mov dword [edi + 0x94], edx
sar ecx, 1
add ecx, edx
mov edx, dword [edi + 0x6c]
imul edx, ecx
add edx, 0x200
sar edx, 0xa
add eax, edx
test ecx, ecx
mov dword [edi + 0x90], eax
mov dword [esi + 4], eax
je 0x7003ddf1
mov eax, dword [edi + 0x30]
test eax, eax
je 0x7003ddf1
xor eax, ecx
cdq
mov eax, dword [edi + 0x64]
xor eax, edx
sub eax, edx
add dword [edi + 0x6c], eax
add esi, 8
cmp dword [ebp - 0x6c], esi
ja 0x7003dcea
jmp 0x7003d16a
test byte [ebp - 0x90], 0x10
je 0x7003dfd1
mov esi, dword [ebp - 0x6c]
cmp dword [ebp + 0xc], esi
jae 0x7003dec9
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x98]
mov ecx, dword [eax]
lea ebx, [ebx + ebx*8]
add eax, 8
mov edx, dword [eax - 4]
mov edi, ecx
sar edi, 1
sub edx, edi
add ecx, edx
mov dword [eax - 4], edx
add edx, ebx
mov dword [eax - 8], ecx
add edx, ecx
cmp esi, eax
lea ebx, [edx + ecx*2]
ja 0x7003de24
mov dword [ebp - 0x98], ebx
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0xc]
mov eax, dword [eax]
mov edx, eax
mov dword [ebp - 0x70], eax
mov eax, dword [edi]
sar edx, 0x1f
xor eax, edx
sub eax, edx
cmp dword [ebp - 0x9c], eax
jl 0x7003e378
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov edx, eax
mov dword [ebp - 0x70], eax
mov eax, dword [edi + 4]
sar edx, 0x1f
xor eax, edx
sub eax, edx
cmp dword [ebp - 0x9c], eax
jl 0x7003e378
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x6c]
jmp 0x7003dec2
mov ecx, dword [eax]
mov edx, dword [eax]
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
cmp edx, ebx
jg 0x7003df29
mov ecx, dword [eax + 4]
mov edx, dword [eax + 4]
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
cmp edx, ebx
jg 0x7003df29
add eax, 0x40
cmp esi, eax
ja 0x7003dea2
mov eax, dword [ebp + 0x10]
and eax, 7
mov dword [ebp - 0x7c], eax
jmp 0x7003be6c
mov eax, dword [ebp - 0x94]
mov esi, 0xffff8000
mov ecx, eax
sar esi, cl
mov edi, esi
shl edi, cl
mov dword [ebp - 0x70], edi
mov edi, 0x7fff
sar edi, cl
mov ebx, edi
shl ebx, cl
mov dword [ebp - 0x74], ebx
jmp 0x7003cc11
mov eax, dword [ebp - 0x94]
mov esi, 0xffffff80
mov ecx, eax
sar esi, cl
mov edi, esi
shl edi, cl
mov dword [ebp - 0x70], edi
mov edi, 0x7f
sar edi, cl
mov ebx, edi
shl ebx, cl
mov dword [ebp - 0x74], ebx
jmp 0x7003cc11
sub eax, dword [ebp + 0xc]
mov dword [ebp - 0x94], eax
sar dword [ebp - 0x94], 2
shr dword [ebp - 0x94], 1
jmp 0x7003dec9
test esi, esi
jne 0x7003e014
mov eax, dword [ebp - 0x7c]
add eax, dword [ebp - 0x88]
add eax, dword [ebp - 0xa4]
test eax, eax
je 0x7003e014
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x7003e0cf
mov eax, dword [ebp - 0x78]
and eax, 3
cmp eax, 3
jne 0x7003e0cf
mov eax, dword [ebp - 0x94]
cmp eax, 7
jg 0x7003e0cf
mov ecx, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x88]
mov esi, dword [ebp - 0xa4]
jmp 0x7003dfac
sub ecx, 1
add eax, 1
cmp eax, 8
je 0x7003e0ba
test ecx, ecx
jne 0x7003df9d
test ebx, ebx
je 0x7003e007
sub ebx, 1
jmp 0x7003dfa0
mov eax, dword [ebp - 0x70]
sub eax, dword [ebp + 0xc]
mov dword [ebp - 0x94], eax
sar dword [ebp - 0x94], 2
jmp 0x7003be6c
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp - 0x6c]
cmp eax, edi
jae 0x7003dec9
mov ebx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x98]
mov ecx, dword [eax]
lea edx, [edx + edx*8]
add eax, 8
add edx, ecx
add edx, dword [eax - 4]
cmp ebx, eax
lea edx, [edx + ecx*2]
ja 0x7003dfe8
mov dword [ebp - 0x98], edx
jmp 0x7003de4e
test esi, esi
je 0x7003e0ba
sub esi, 1
jmp 0x7003dfa0
mov eax, dword [ebp - 0x7c]
add eax, esi
add eax, dword [ebp - 0x88]
add eax, dword [ebp - 0xa4]
add dword [ebp - 0x94], eax
jmp 0x7003cbc1
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x94], eax
jmp 0x7003ce2a
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8c]
mov dword [esp], eax
call fcn.7003fc00
mov dword [ebp - 0x94], eax
jmp 0x7003cf8d
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8c]
mov dword [esp], eax
call fcn.7003fc00
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x74]
cmp dword [ebp + 0xc], eax
jb 0x7003ce2a
mov dword [ebp - 0x7c], 0
jmp 0x7003be6c
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x94], eax
jmp 0x7003cf8d
mov dword [ebp - 0x6c], 0
jmp 0x7003bfb0
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0xa4], esi
test edx, edx
lea esi, [edx - 1]
je 0x7003cbc1
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x7c]
jmp 0x7003e0f5
mov ecx, edx
shl dword [ebx], cl
sub esi, 1
add ebx, 4
cmp esi, 0xffffffff
je 0x7003cbc1
test edx, edx
jne 0x7003e0e2
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x7003e118
mov eax, dword [ebx]
movzx ecx, byte [ebp - 0x88]
add eax, 1
shl eax, cl
sub eax, 1
mov dword [ebx], eax
jmp 0x7003e0e6
mov edi, dword [ebp - 0xa4]
test edi, edi
je 0x7003e0e6
mov eax, dword [ebx]
movzx ecx, byte [ebp - 0xa4]
mov edi, eax
and edi, 1
add eax, edi
shl eax, cl
sub eax, edi
mov dword [ebx], eax
jmp 0x7003e0e6
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x6c]
cmp esi, eax
jae 0x7003d16a
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 8]
lea edx, [eax + eax]
sub edx, dword [edi + 0x14]
mov dword [edi + 0x14], eax
mov eax, edx
imul eax, ecx
add eax, 0x200
sar eax, 0xa
add eax, dword [esi]
test edx, edx
mov dword [edi + 0x10], eax
je 0x7003e184
mov ebx, dword [esi]
test ebx, ebx
je 0x7003e184
xor edx, ebx
mov ebx, dword [edi + 4]
sar edx, 0x1f
sub ecx, edx
xor ebx, edx
add ebx, ecx
mov dword [edi + 8], ebx
mov edx, dword [edi + 0x70]
mov ecx, edx
sub ecx, dword [edi + 0x74]
mov dword [edi + 0x74], edx
sar ecx, 1
add ecx, edx
mov edx, dword [edi + 0x68]
imul edx, ecx
add edx, 0x200
sar edx, 0xa
add eax, edx
test ecx, ecx
mov dword [edi + 0x70], eax
mov dword [esi], eax
je 0x7003e1c1
mov eax, dword [edi + 0x10]
test eax, eax
je 0x7003e1c1
xor eax, ecx
cdq
mov eax, dword [edi + 0x64]
xor eax, edx
sub eax, edx
add dword [edi + 0x68], eax
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0xc]
lea edx, [eax + eax]
sub edx, dword [edi + 0x34]
mov dword [edi + 0x34], eax
mov eax, edx
imul eax, ecx
add eax, 0x200
sar eax, 0xa
add eax, dword [esi + 4]
test edx, edx
mov dword [edi + 0x30], eax
je 0x7003e1ff
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x7003e1ff
xor edx, ebx
mov ebx, dword [edi + 4]
sar edx, 0x1f
sub ecx, edx
xor ebx, edx
add ebx, ecx
mov dword [edi + 0xc], ebx
mov edx, dword [edi + 0x90]
mov ecx, edx
sub ecx, dword [edi + 0x94]
mov dword [edi + 0x94], edx
sar ecx, 1
add ecx, edx
mov edx, dword [edi + 0x6c]
imul edx, ecx
add edx, 0x200
sar edx, 0xa
add eax, edx
test ecx, ecx
mov dword [edi + 0x90], eax
mov dword [esi + 4], eax
je 0x7003e249
mov eax, dword [edi + 0x30]
test eax, eax
je 0x7003e249
xor eax, ecx
cdq
mov eax, dword [edi + 0x64]
xor eax, edx
sub eax, edx
add dword [edi + 0x6c], eax
add esi, 8
cmp dword [ebp - 0x6c], esi
ja 0x7003e148
jmp 0x7003d16a
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x6c]
cmp esi, eax
jae 0x7003d16a
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 8]
lea edx, [eax + eax]
sub edx, dword [edi + 0x14]
mov dword [edi + 0x14], eax
mov eax, edx
imul eax, ecx
add eax, 0x200
sar eax, 0xa
add eax, dword [esi]
test edx, edx
mov dword [edi + 0x10], eax
je 0x7003e2a4
mov ebx, dword [esi]
test ebx, ebx
je 0x7003e2a4
xor edx, ebx
mov ebx, dword [edi + 4]
sar edx, 0x1f
sub ecx, edx
xor ebx, edx
add ebx, ecx
mov dword [edi + 8], ebx
mov ecx, dword [edi + 0x70]
lea edx, [ecx + ecx]
sub edx, dword [edi + 0x74]
mov dword [edi + 0x74], ecx
mov ecx, dword [edi + 0x68]
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
add eax, ecx
test edx, edx
mov dword [edi + 0x70], eax
mov dword [esi], eax
je 0x7003e2e0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x7003e2e0
xor edx, eax
mov eax, dword [edi + 0x64]
sar edx, 0x1f
xor eax, edx
sub eax, edx
add dword [edi + 0x68], eax
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0xc]
lea edx, [eax + eax]
sub edx, dword [edi + 0x34]
mov dword [edi + 0x34], eax
mov eax, edx
imul eax, ecx
add eax, 0x200
sar eax, 0xa
add eax, dword [esi + 4]
test edx, edx
mov dword [edi + 0x30], eax
je 0x7003e31e
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x7003e31e
xor edx, ebx
mov ebx, dword [edi + 4]
sar edx, 0x1f
sub ecx, edx
xor ebx, edx
add ebx, ecx
mov dword [edi + 0xc], ebx
mov ecx, dword [edi + 0x90]
lea edx, [ecx + ecx]
sub edx, dword [edi + 0x94]
mov dword [edi + 0x94], ecx
mov ecx, dword [edi + 0x6c]
imul ecx, edx
add ecx, 0x200
sar ecx, 0xa
add eax, ecx
test edx, edx
mov dword [edi + 0x90], eax
mov dword [esi + 4], eax
je 0x7003e367
mov eax, dword [edi + 0x30]
test eax, eax
je 0x7003e367
xor edx, eax
mov eax, dword [edi + 0x64]
sar edx, 0x1f
xor eax, edx
sub eax, edx
add dword [edi + 0x6c], eax
add esi, 8
cmp dword [ebp - 0x6c], esi
ja 0x7003e268
jmp 0x7003d16a
mov dword [ebp - 0x94], 0
jmp 0x7003dec9
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x94], eax
jmp 0x7003c4f7