Function at 0x101970c0
Capabilities:
Check for software breakpoints
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xd28
mov eax, dword [0x101f9834]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 0x18]
mov edx, ecx
imul eax, dword [ebx + 0x3c]
push esi
mov esi, dword [ebx + 0x4c]
mov dword [ebp - 0xc24], edx
push edi
movzx edi, word [edx + 0x26]
mov dword [ebp - 0xc04], edi
movd xmm0, eax
mov eax, dword [ebx + 0x48]
pshufd xmm1, xmm0, 0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc14], ecx
mov dword [ebp - 0xc44], eax
test esi, esi
je 0x1019713a
mov ecx, edi
mov eax, esi
sub ecx, dword [ebx + 0x3c]
sub eax, dword [ebx + 0x3c]
cmp esi, edi
cmova eax, ecx
mov dword [ebp - 0xc04], eax
movzx eax, word [edx + 0x24]
cdq
sub eax, dword [ebx + 0x34]
mov ecx, edx
mov edx, dword [ebx + 0x30]
sbb ecx, dword [ebx + 0x38]
mov dword [ebp - 0xc18], eax
mov dword [ebp - 0xc08], ecx
test ecx, ecx
jb 0x10197181
ja 0x10197160
cmp eax, edx
jbe 0x10197170
mov eax, edx
xor ecx, ecx
mov dword [ebp - 0xc18], eax
mov dword [ebp - 0xc08], ecx
test ecx, ecx
jne 0x10197181
cmp eax, 8
ja 0x10197181
add eax, 0xffffffff
adc ecx, 0xffffffff
jmp 0x10197188
mov eax, 8
xor ecx, ecx
movups xmm0, xmmword [ebx + 8]
push ecx
push eax
push dword [ebx + 0x24]
paddd xmm0, xmm1
mov dword [ebp - 0xc2c], ecx
push dword [ebx + 0x20]
mov dword [ebp - 0xc30], eax
movaps xmmword [ebp - 0xd20], xmm0
movups xmmword [ebp - 0x18], xmm0
call fcn.1019d680
mov dword [ebp - 0x1c], edx
lea esi, [ebp - 0x358]
mov edi, 2
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmmword [ebp - 0xd20]
movups xmmword [ebp - 0x28], xmm0
mov ecx, esi
call fcn.1018be90
add esi, 0x198
sub edi, 1
jne 0x101971d7
mov eax, dword [ebx + 0x24]
mov esi, eax
mov ecx, dword [ebx + 0x20]
mov edi, ecx
push 0
push dword [ebx + 0x18]
shld esi, edi, 3
push eax
push ecx
push 0
push 8
push esi
shl edi, 3
lea eax, [ebp - 0x18]
push edi
push 0
push 8
push 0
push 8
push dword [ebp - 0xc08]
lea ecx, [ebp - 0x358]
push dword [ebp - 0xc18]
push 0
push dword [ebp - 0xc04]
push eax
call fcn.10084950
push 0
push dword [ebx + 0x18]
mov eax, dword [ebp - 0xc18]
push dword [ebx + 0x24]
sub eax, dword [ebp - 0xc30]
push dword [ebx + 0x20]
mov ecx, dword [ebp - 0xc08]
sbb ecx, dword [ebp - 0xc2c]
push 0
push 8
push esi
push edi
push 0
push 8
push 0
push 8
push ecx
push eax
push 0
push dword [ebp - 0xc04]
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x1c0]
call fcn.10084950
mov esi, dword [ebx + 0x4c]
mov edi, dword [ebp - 0xc24]
test esi, esi
jne 0x101972c2
mov eax, dword [edi + 0x30]
mov ecx, dword [ebp - 0xc14]
mov dword [ebp - 0xc18], eax
mov eax, dword [edi + 0x34]
mov dword [ebp - 0xc28], eax
mov eax, dword [edi + 0x38]
mov dword [ebp - 0xc04], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0xc08], eax
mov eax, dword [ebp - 0xc44]
shrd ecx, eax, 2
shr eax, 2
jmp 0x10197317
sub esi, dword [ebx + 0x3c]
xor edx, edx
movzx ecx, byte [edi + 0x40]
mov eax, esi
div ecx
movzx ecx, byte [edi + 0x41]
xor edx, edx
mov dword [ebp - 0xc18], eax
mov eax, esi
div ecx
movzx ecx, byte [edi + 0x42]
xor edx, edx
mov dword [ebp - 0xc28], eax
mov eax, esi
div ecx
movzx ecx, byte [edi + 0x43]
xor edx, edx
mov dword [ebp - 0xc04], eax
mov eax, esi
div ecx
mov ecx, dword [ebp - 0xc14]
mov dword [ebp - 0xc08], eax
mov eax, dword [ebp - 0xc44]
shrd ecx, eax, 1
shr eax, 1
mov esi, dword [ebx + 0x30]
xor edx, edx
mov dword [ebp - 0xc44], eax
mov eax, esi
mov dword [ebp - 0xc38], ecx
movzx ecx, byte [edi + 0x44]
div ecx
movzx ecx, byte [edi + 0x45]
xor edx, edx
mov dword [ebp - 0xc2c], eax
mov eax, esi
div ecx
movzx ecx, byte [edi + 0x46]
xor edx, edx
mov dword [ebp - 0xc34], eax
mov eax, esi
div ecx
movzx ecx, byte [edi + 0x47]
xor edx, edx
mov dword [ebp - 0xc40], eax
mov eax, esi
div ecx
lea esi, [ebp - 0x638]
mov dword [ebp - 0xc10], eax
mov eax, dword [edi + 0x30]
mov edi, 2
shl eax, 3
mov dword [ebp - 0xc30], eax
nop dword [eax]
mov ecx, esi
call fcn.1018a270
add esi, 0x170
sub edi, 1
jne 0x10197380
push edi
push 1
push edi
mov ecx, dword [ebx + 0x44]
mov eax, dword [ebp - 0xc14]
push 8
push edi
mov esi, dword [ecx]
add eax, eax
push 0x40
push edi
push dword [ebp - 0xc30]
mov dword [ebp - 0xc3c], eax
lea ecx, [ebp - 0x638]
push edi
push 8
push edi
push 8
push edi
push dword [ebp - 0xc2c]
add eax, esi
push edi
push dword [ebp - 0xc18]
mov dword [ebp - 0xc0c], eax
lea eax, [ebp - 0xc0c]
push eax
call fcn.10084950
mov edi, dword [ebp - 0xc24]
mov ecx, dword [ebp - 0xc14]
push 0
push 1
mov eax, dword [edi + 0x30]
push 0
push 8
push 0
push 0x40
push 0
push dword [ebp - 0xc30]
lea eax, [ecx + eax*8]
push 0
push 8
push 0
lea eax, [esi + eax*2]
push 8
mov dword [ebp - 0xc0c], eax
lea ecx, [ebp - 0x4c8]
mov eax, dword [ebp - 0xc2c]
push 0
add eax, 0xfffffff8
push eax
push 0
push dword [ebp - 0xc18]
lea eax, [ebp - 0xc0c]
push eax
call fcn.10084950
mov eax, dword [ebx + 0x44]
mov esi, dword [ebp - 0xc38]
push 0
push 1
mov eax, dword [eax + 4]
add esi, esi
push 0
push 8
push 0
push 0x40
push 0
add eax, esi
mov dword [ebp - 0xc0c], eax
mov eax, dword [edi + 0x34]
shl eax, 3
push eax
push 0
push 8
push 0
push 8
push 0
push dword [ebp - 0xc34]
lea eax, [ebp - 0xc0c]
push 0
push dword [ebp - 0xc28]
push eax
lea ecx, [ebp - 0xbf8]
call fcn.10084950
mov ecx, dword [ebx + 0x44]
push 0
push 1
push 0
mov eax, dword [ecx + 8]
lea ecx, [ebp - 0xa88]
push 8
push 0
push 0x40
push 0
add eax, esi
mov dword [ebp - 0xc0c], eax
mov eax, dword [edi + 0x38]
shl eax, 3
push eax
push 0
push 8
push 0
push 8
push 0
push dword [ebp - 0xc40]
lea eax, [ebp - 0xc0c]
push 0
push dword [ebp - 0xc04]
push eax
call fcn.10084950
lea esi, [ebp - 0x918]
mov edi, 2
nop dword [eax]
mov ecx, esi
call fcn.1018a270
add esi, 0x170
sub edi, 1
jne 0x101974f0
mov edi, dword [ebp - 0xc24]
lea ecx, [ebp - 0x918]
push 0
push 1
mov eax, dword [ebx + 0x44]
mov edi, dword [edi + 0x3c]
push 0
push 8
mov esi, dword [eax + 0xc]
mov eax, dword [ebp - 0xc3c]
push 0
push 0x40
push 0
shl edi, 3
add eax, esi
push edi
push 0
push 8
push 0
push 8
push 0
push dword [ebp - 0xc10]
mov dword [ebp - 0xc0c], eax
lea eax, [ebp - 0xc0c]
push 0
push dword [ebp - 0xc08]
push eax
call fcn.10084950
mov eax, dword [ebp - 0xc14]
lea ecx, [ebp - 0x7a8]
push 0
push 1
push 0
push 8
push 0
push 0x40
push 0
push edi
push 0
add eax, edi
push 8
push 0
push 8
lea eax, [esi + eax*2]
mov dword [ebp - 0xc0c], eax
mov eax, dword [ebp - 0xc10]
push 0
add eax, 0xfffffff8
push eax
push 0
push dword [ebp - 0xc08]
lea eax, [ebp - 0xc0c]
push eax
call fcn.10084950
nop dword [eax]
mov eax, dword [ebp - 0xba8]
add eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xa38]
add eax, eax
mov dword [ebp - 0xc44], eax
nop dword [eax]
mov eax, dword [ebp - 0xa98]
lea esi, [ebp - 0x270]
mov dword [ebp - 0xc08], 0
mov dword [ebp - 0xc00], 0
mov dword [ebp - 0xc30], esi
mov ecx, dword [ebp + eax*8 - 0xae8]
mov eax, dword [ebp - 0xaa0]
mov eax, dword [ebp + eax*4 - 0xb78]
lea edi, [eax + ecx*2]
mov eax, dword [ebp - 0x928]
mov dword [ebp - 0xc2c], edi
mov ecx, dword [ebp + eax*8 - 0x978]
mov eax, dword [ebp - 0x930]
mov eax, dword [ebp + eax*4 - 0xa08]
lea edx, [eax + ecx*2]
mov ecx, dword [ebp - 0xc08]
sub edx, edi
mov dword [ebp - 0xd14], edx
nop
lea eax, [edx + edi]
mov dword [ebp - 0xc34], edi
mov dword [ebp - 0xc28], eax
lea eax, [edi + 8]
add eax, edx
mov dword [ebp - 0xc0c], 2
lea edx, [ebp - 0x638]
mov dword [ebp - 0xd00], eax
add edx, ecx
lea edi, [ebp - 0x918]
add edi, ecx
mov dword [ebp - 0xc38], edx
mov dword [ebp - 0xc18], edi
mov eax, dword [edx + 0x160]
mov ecx, dword [edx + eax*8 + 0x110]
mov eax, dword [edx + 0x158]
mov eax, dword [edx + eax*4 + 0x80]
lea eax, [eax + ecx*2]
mov dword [ebp - 0xc40], eax
mov eax, dword [edi + 0x160]
mov ecx, dword [edi + eax*8 + 0x110]
mov eax, dword [edi + 0x158]
mov eax, dword [edi + eax*4 + 0x80]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0xc08]
mov dword [ebp - 0xc3c], eax
add dword [ebp + ecx - 0x4e0], 1
mov edi, dword [ebp + ecx - 0x4e0]
adc dword [ebp + ecx - 0x4dc], 0
add dword [ebp + ecx - 0x7c0], 1
mov eax, dword [ebp + ecx - 0x4dc]
adc dword [ebp + ecx - 0x7bc], 0
mov edx, dword [ebp + ecx - 0x7c0]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + ecx - 0x7bc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc38]
mov dword [ebp + ecx - 0x4d8], 0
mov dword [ebp + ecx - 0x4d4], 0
mov dword [ebp + ecx - 0x7b8], 0
mov dword [ebp + ecx - 0x7b4], 0
mov ecx, dword [eax + 0x110]
mov eax, dword [eax + edi*4 + 0x80]
mov edi, dword [ebp - 0xc34]
mov dword [ebp - 0xc34], 4
lea eax, [eax + ecx*2]
mov dword [ebp - 0xc20], eax
mov eax, dword [ebp - 0xc18]
mov ecx, dword [eax + 0x110]
mov eax, dword [eax + edx*4 + 0x80]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0xc40]
mov dword [ebp - 0xc10], eax
lea eax, [edi + 4]
mov dword [ebp - 0xc24], eax
lea eax, [ecx + 4]
mov dword [ebp - 0xc04], eax
mov eax, dword [ebp - 0xc28]
add eax, 4
mov dword [ebp - 0xc14], eax
mov eax, dword [ebp - 0xc3c]
sub ecx, eax
sub edi, dword [ebp - 0xc28]
lea edx, [eax + 4]
lea eax, [ecx - 4]
mov dword [ebp - 0xc1c], edx
mov dword [ebp - 0xcfc], eax
lea eax, [edi - 4]
mov dword [ebp - 0xd04], eax
lea edi, [esi - 0xe8]
nop dword [eax + eax]
mov eax, dword [esi]
mov ecx, dword [edi + 0xe0]
mov edx, dword [edi + eax*8 + 0x88]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xca4], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcd4], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc60], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020815c
mov al, byte [eax + edx]
mov edx, 0x1020895c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xcd4]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xca4]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xc60]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020855c
sub ecx, eax
mov eax, dword [ebp - 0xcfc]
add dx, word [ecx]
mov ecx, dword [ebp - 0xc1c]
mov word [eax + ecx], dx
mov edx, 0x80
movzx eax, byte [ebp - 0xbf9]
sub ax, dx
shl ax, 4
mov word [ecx - 4], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x101978b8
cmp eax, dword [esi - 0x94]
je 0x101978bf
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc28], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcd0], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc5c], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020855c
mov al, byte [eax + edx]
mov edx, 0x1020815c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xc28]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xc5c]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xcd0]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020895c
sub ecx, eax
mov eax, dword [ebp - 0xc04]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax - 2], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc1c]
shl ax, 4
mov word [ecx - 2], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x10197995
cmp eax, dword [esi - 0x94]
je 0x1019799c
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc6c], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcf8], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xce4], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020855c
mov al, byte [eax + edx]
mov edx, 0x1020815c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xc6c]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xce4]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xcf8]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020895c
sub ecx, eax
mov eax, dword [ebp - 0xc04]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc1c]
shl ax, 4
mov word [ecx], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x10197a70
cmp eax, dword [esi - 0x94]
je 0x10197a77
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc68], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc78], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcec], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020855c
mov al, byte [edx + eax]
mov edx, 0x1020815c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xc68]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xcec]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xc78]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020895c
sub ecx, eax
mov eax, dword [ebp - 0xc04]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 2], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc1c]
shl ax, 4
mov word [ecx + 2], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x10197b4d
cmp eax, dword [esi - 0x94]
je 0x10197b54
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc7c], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc8c], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc9c], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020855c
mov al, byte [edx + eax]
mov edx, 0x1020815c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xc7c]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xc9c]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xc8c]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020895c
sub ecx, eax
mov eax, dword [ebp - 0xc04]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 4], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc1c]
shl ax, 4
mov word [ecx + 4], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x10197c2a
cmp eax, dword [esi - 0x94]
je 0x10197c31
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcdc], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc88], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc98], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020895c
mov al, byte [edx + eax]
mov edx, 0x1020855c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xc98]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xc88]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xcdc]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020815c
sub ecx, eax
mov eax, dword [ebp - 0xc04]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 6], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc1c]
shl ax, 4
mov word [ecx + 6], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x10197d07
cmp eax, dword [esi - 0x94]
je 0x10197d0e
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcac], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcbc], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc3c], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020895c
mov al, byte [eax + edx]
mov edx, 0x1020855c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xc3c]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xcbc]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xcac]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020815c
sub ecx, eax
mov eax, dword [ebp - 0xc04]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 8], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc1c]
shl ax, 4
mov word [ecx + 8], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x10197de4
cmp eax, dword [esi - 0x94]
je 0x10197deb
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcb0], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xce0], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc40], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020855c
mov al, byte [eax + edx]
mov edx, 0x1020815c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xcb0]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xc40]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xce0]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020895c
sub ecx, eax
mov eax, dword [ebp - 0xc04]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 0xa], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc1c]
shl ax, 4
mov word [ecx + 0xa], ax
mov ecx, dword [esi]
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
cmp ecx, dword [esi - 0x98]
jne 0x10197ebc
cmp eax, dword [esi - 0x94]
je 0x10197ec1
mov dword [esi], ecx
mov dword [esi + 4], eax
mov eax, dword [edi + 0xe0]
movzx eax, byte [edi + eax + 0xd1]
cdq
add dword [edi + 0xe0], eax
mov ecx, dword [edi + 0xe0]
adc dword [edi + 0xe4], edx
mov eax, dword [edi + 0xe4]
mov dword [ebp - 0xc], eax
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
mov edx, dword [edi + 0x88]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcc0], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xce8], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc64], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020855c
mov al, byte [edx + eax]
mov edx, 0x1020815c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xcc0]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xc64]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xce8]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020895c
sub ecx, eax
mov eax, dword [ebp - 0xc20]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc10]
shl ax, 4
mov word [ecx], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x10197fc5
cmp eax, dword [esi - 0x94]
je 0x10197fcc
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xccc], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc58], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc4c], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020895c
mov al, byte [edx + eax]
mov edx, 0x1020855c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xc4c]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xc58]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xccc]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020815c
sub ecx, eax
mov eax, dword [ebp - 0xc20]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 2], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc10]
shl ax, 4
mov word [ecx + 2], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x101980a2
cmp eax, dword [esi - 0x94]
je 0x101980a9
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc70], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcf4], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcd8], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020895c
mov al, byte [edx + eax]
mov edx, 0x1020855c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xcd8]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xcf4]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xc70]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020815c
sub ecx, eax
mov eax, dword [ebp - 0xc20]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 4], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc10]
shl ax, 4
mov word [ecx + 4], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x1019817f
cmp eax, dword [esi - 0x94]
je 0x10198186
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc74], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcf0], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc54], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020895c
mov al, byte [edx + eax]
mov edx, 0x1020855c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xc54]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xcf0]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xc74]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020815c
sub ecx, eax
mov eax, dword [ebp - 0xc20]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 6], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc10]
shl ax, 4
mov word [ecx + 6], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x1019825c
cmp eax, dword [esi - 0x94]
je 0x10198263
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc80], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc90], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xca0], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020855c
mov al, byte [eax + edx]
mov edx, 0x1020815c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xc80]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xca0]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xc90]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020895c
sub ecx, eax
mov eax, dword [ebp - 0xc20]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 8], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc10]
shl ax, 4
mov word [ecx + 8], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x10198339
cmp eax, dword [esi - 0x94]
je 0x10198340
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc84], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc94], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xc50], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020895c
mov al, byte [eax + edx]
mov edx, 0x1020855c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xc50]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xc94]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xc84]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020815c
sub ecx, eax
mov eax, dword [ebp - 0xc20]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 0xa], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc10]
shl ax, 4
mov word [ecx + 0xa], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x10198416
cmp eax, dword [esi - 0x94]
je 0x1019841d
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xca8], eax
mov eax, dword [ebp + ecx*4 - 0x22c]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcb8], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcc8], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020815c
mov al, byte [eax + edx]
mov edx, 0x1020855c
mov byte [ebp - 0xbf9], al
mov eax, dword [ebp - 0xcc8]
shl eax, 2
sub edx, eax
mov eax, dword [ebp - 0xca8]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xcb8]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020895c
sub ecx, eax
mov eax, dword [ebp - 0xc20]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 0xc], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc10]
shl ax, 4
mov word [ecx + 0xc], ax
mov edx, dword [esi]
mov ecx, edx
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
mov dword [ebp - 0xc], eax
cmp ecx, dword [esi - 0x98]
jne 0x101984f3
cmp eax, dword [esi - 0x94]
je 0x101984fa
mov dword [esi], ecx
mov edx, ecx
mov dword [esi + 4], eax
mov edx, dword [edi + edx*8 + 0x88]
mov ecx, dword [edi + 0xe0]
mov eax, dword [edi + ecx*4 + 0x108]
add ecx, dword [ebp - 0xc00]
movzx edi, byte [eax + edx]
mov eax, dword [ebp + ecx*4 - 0x22c]
mov dword [ebp - 0xc], edi
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcb4], eax
mov eax, dword [ebp + ecx*4 - 0x208]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xcc4], eax
mov eax, dword [ebp + ecx*4 - 0x1e4]
mov ecx, 0x1020855c
mov al, byte [eax + edx]
mov edx, 0x1020815c
mov byte [ebp - 0xbf9], al
lea eax, [edi*4]
sub edx, eax
mov eax, dword [ebp - 0xcc4]
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0xcb4]
shl eax, 2
mov dx, word [edx]
add dx, word [ecx]
mov ecx, 0x1020895c
sub ecx, eax
mov eax, dword [ebp - 0xc20]
add dx, word [ecx]
mov ecx, 0x80
mov word [eax + 0xe], dx
movzx eax, byte [ebp - 0xbf9]
sub ax, cx
mov ecx, dword [ebp - 0xc10]
shl ax, 4
mov word [ecx + 0xe], ax
mov ecx, dword [esi]
mov eax, dword [esi + 4]
add ecx, 1
adc eax, 0
cmp ecx, dword [esi - 0x98]
jne 0x101985c6
cmp eax, dword [esi - 0x94]
je 0x101985cb
mov dword [esi], ecx
mov dword [esi + 4], eax
mov eax, dword [ebp - 0xc28]
mov ecx, 0x10208d5c
add eax, dword [ebp - 0xca4]
add eax, dword [ebp - 0xcc0]
add eax, dword [ebp - 0xccc]
mov edx, dword [ebp - 0xc60]
add edx, dword [ebp - 0xc5c]
add edx, dword [ebp - 0xc64]
add edx, dword [ebp - 0xc4c]
mov edi, dword [ebp - 0xcd4]
add edi, dword [ebp - 0xcd0]
add edi, dword [ebp - 0xce8]
add edi, dword [ebp - 0xc58]
sar eax, 2
and edi, 0xfffffffc
mov dword [ebp - 0xc4c], eax
shl eax, 2
sub ecx, eax
mov esi, dword [ebp - 0xd04]
mov eax, 0x1020915c
sar edx, 2
sub eax, edi
movzx ecx, word [ecx]
add cx, word [eax]
mov eax, 0xff
sub eax, edx
shl eax, 3
add cx, ax
mov eax, dword [ebp - 0xc14]
mov word [esi + eax], cx
lea eax, [edx*4]
mov edx, dword [ebp - 0xce4]
mov ecx, 0x1020995c
sub ecx, eax
add edx, dword [ebp - 0xcec]
add edx, dword [ebp - 0xcd8]
mov eax, 0x1020955c
sub eax, edi
add edx, dword [ebp - 0xc54]
mov edi, dword [ebp - 0xcf8]
movzx ecx, word [ecx]
add edi, dword [ebp - 0xc78]
add cx, word [eax]
mov eax, 0xff
sub eax, dword [ebp - 0xc4c]
shl eax, 3
add cx, ax
add edi, dword [ebp - 0xcf4]
mov eax, dword [ebp - 0xc14]
add edi, dword [ebp - 0xcf0]
and edi, 0xfffffffc
sar edx, 2
mov word [eax - 4], cx
mov ecx, 0x10208d5c
mov eax, dword [ebp - 0xc68]
add eax, dword [ebp - 0xc6c]
add eax, dword [ebp - 0xc70]
add eax, dword [ebp - 0xc74]
sar eax, 2
mov dword [ebp - 0xc54], eax
shl eax, 2
sub ecx, eax
mov eax, 0x1020915c
sub eax, edi
movzx ecx, word [ecx]
add cx, word [eax]
mov eax, 0xff
sub eax, edx
shl eax, 3
add cx, ax
mov eax, dword [ebp - 0xc24]
mov word [eax - 2], cx
lea eax, [edx*4]
mov ecx, 0x1020995c
sub ecx, eax
mov eax, 0x1020955c
sub eax, edi
movzx ecx, word [ecx]
add cx, word [eax]
mov eax, 0xff
sub eax, dword [ebp - 0xc54]
shl eax, 3
add cx, ax
mov edx, dword [ebp - 0xc9c]
mov eax, dword [ebp - 0xc14]
add edx, dword [ebp - 0xc98]
add edx, dword [ebp - 0xca0]
add edx, dword [ebp - 0xc50]
mov word [eax - 2], cx
mov ecx, 0x10208d5c
mov eax, dword [ebp - 0xcdc]
add eax, dword [ebp - 0xc7c]
add eax, dword [ebp - 0xc80]
add eax, dword [ebp - 0xc84]
mov edi, dword [ebp - 0xc8c]
add edi, dword [ebp - 0xc88]
add edi, dword [ebp - 0xc90]
add edi, dword [ebp - 0xc94]
sar eax, 2
and edi, 0xfffffffc
mov dword [ebp - 0xc50], eax
shl eax, 2
sub ecx, eax
sar edx, 2
mov eax, 0x1020915c
sub eax, edi
movzx ecx, word [ecx]
add cx, word [eax]
mov eax, 0xff
sub eax, edx
shl eax, 3
add cx, ax
mov eax, dword [ebp - 0xc24]
mov word [eax], cx
lea eax, [edx*4]
mov ecx, 0x1020995c
mov edx, dword [ebp - 0xcc8]
sub ecx, eax
add edx, dword [ebp - 0xcc4]
mov eax, 0x1020955c
add edx, dword [ebp - 0xc3c]
sub eax, edi
add edx, dword [ebp - 0xc40]
mov edi, dword [ebp - 0xcb8]
movzx ecx, word [ecx]
add edi, dword [ebp - 0xcb4]
add cx, word [eax]
mov eax, 0xff
sub eax, dword [ebp - 0xc50]
shl eax, 3
add cx, ax
add edi, dword [ebp - 0xcbc]
mov eax, dword [ebp - 0xc14]
add edi, dword [ebp - 0xce0]
and edi, 0xfffffffc
sar edx, 2
mov word [eax], cx
mov ecx, 0x10208d5c
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0xca8]
add eax, dword [ebp - 0xcac]
add eax, dword [ebp - 0xcb0]
sar eax, 2
mov dword [ebp - 0xc], eax
shl eax, 2
sub ecx, eax
mov eax, 0x1020915c
sub eax, edi
movzx ecx, word [ecx]
add cx, word [eax]
mov eax, 0xff
sub eax, edx
shl eax, 3
add cx, ax
mov eax, dword [ebp - 0xc24]
mov word [eax + 2], cx
lea eax, [edx*4]
mov ecx, 0x1020995c
sub ecx, eax
mov eax, 0x1020955c
sub eax, edi
movzx ecx, word [ecx]
add cx, word [eax]
mov eax, 0xff
sub eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0xc30]
add dword [ebp - 0xc24], 0x10
lea edi, [esi - 0xe8]
add dword [ebp - 0xc04], 0x20
add dword [ebp - 0xc1c], 0x20
add dword [ebp - 0xc20], 0x20
add dword [ebp - 0xc10], 0x20
shl eax, 3
add cx, ax
mov eax, dword [ebp - 0xc14]
mov word [eax + 2], cx
add eax, 0x10
mov dword [ebp - 0xc14], eax
mov eax, dword [edi + 0xe0]
movzx eax, byte [edi + eax + 0xd1]
cdq
add dword [edi + 0xe0], eax
mov dword [esi], 0
adc dword [edi + 0xe4], edx
sub dword [ebp - 0xc34], 1
mov dword [esi + 4], 0
jne 0x101977e0
mov edx, dword [ebp - 0xc38]
mov eax, dword [ebp - 0xc2c]
add eax, 8
mov esi, dword [ebp - 0xc08]
mov dword [ebp - 0xc34], eax
add dword [edx + 0x20], 1
mov eax, dword [ebp - 0xd00]
adc dword [edx + 0x24], 0
mov dword [ebp - 0xc28], eax
mov eax, dword [edx + 0x168]
add dword [edx + 0x58], eax
mov eax, dword [edx + 0x16c]
adc dword [edx + 0x5c], eax
mov eax, dword [edx + 0x5c]
mov ecx, dword [edx + 0x58]
mov dword [ebp - 0xc], eax
mov eax, dword [edx]
mov dword [edx + 0x158], 0
mov dword [edx + 0x15c], 0
mov dword [edx + 0x160], 0
lea ecx, [eax + ecx*2]
mov dword [edx + 0x164], 0
mov eax, dword [edx + 0x50]
add eax, eax
mov dword [edx + 0x80], ecx
add ecx, eax
mov dword [edi + 0xe0], 0
mov dword [edx + 0x84], ecx
add ecx, eax
mov dword [edx + 0x88], ecx
add ecx, eax
mov dword [edx + 0x8c], ecx
add ecx, eax
mov dword [edx + 0x90], ecx
add ecx, eax
mov dword [edx + 0x94], ecx
add ecx, eax
add eax, ecx
mov dword [edx + 0x98], ecx
mov ecx, dword [ebp - 0xc18]
mov dword [edx + 0x9c], eax
mov dword [edi + 0xe4], 0
add dword [ecx + 0x20], 1
mov eax, dword [ecx + 0x168]
adc dword [ecx + 0x24], 0
add dword [ecx + 0x58], eax
mov eax, dword [ecx + 0x16c]
adc dword [ecx + 0x5c], eax
mov eax, dword [ebp - 0xc08]
mov dword [ecx + 0x158], 0
mov dword [ecx + 0x15c], 0
mov dword [ecx + 0x160], 0
mov eax, dword [ebp + eax - 0x8bc]
mov dword [ecx + 0x164], 0
mov ecx, dword [ecx + 0x58]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc08]
mov eax, dword [ebp + eax - 0x918]
lea ecx, [eax + ecx*2]
mov eax, dword [ebp - 0xc18]
mov dword [eax + 0x80], ecx
mov eax, dword [eax + 0x50]
add eax, eax
add ecx, eax
mov dword [ebp + esi - 0x894], ecx
add ecx, eax
mov dword [ebp + esi - 0x890], ecx
add ecx, eax
mov dword [ebp + esi - 0x88c], ecx
add ecx, eax
mov dword [ebp + esi - 0x888], ecx
add ecx, eax
mov dword [ebp + esi - 0x884], ecx
add ecx, eax
add eax, ecx
mov dword [ebp + esi - 0x880], ecx
mov ecx, esi
mov dword [ebp + ecx - 0x87c], eax
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
add eax, 1
mov esi, dword [ebp - 0xc30]
adc ecx, 0
cmp ecx, dword [edi + 0x7c]
jb 0x10198ad6
ja 0x10198ac8
cmp eax, dword [edi + 0x78]
jb 0x10198ad6
mov eax, dword [edi + 0x60]
mov ecx, dword [edi + 0x64]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
jmp 0x10198b25
mov dword [edi + 0x18], eax
add eax, 1
mov dword [edi + 0x1c], ecx
adc ecx, 0
cmp eax, dword [edi + 0x78]
jne 0x10198af4
cmp ecx, dword [edi + 0x7c]
jne 0x10198af4
mov eax, dword [edi + 0x60]
mov ecx, dword [edi + 0x64]
jmp 0x10198afa
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x3c]
mov dword [edi + 0x50], eax
mov eax, dword [edi + 0xf0]
add dword [edi + 0x70], eax
mov eax, dword [edi + 0xf4]
adc dword [edi + 0x74], eax
push dword [edi + 0x74]
mov dword [edi + 0x54], ecx
mov ecx, edi
push dword [edi + 0x70]
call fcn.10084950
mov edx, dword [ebp - 0xc38]
sub dword [ebp - 0xc0c], 1
mov edi, dword [ebp - 0xc18]
jne 0x10197680
mov edx, dword [ebp - 0xc00]
add esi, 0x198
mov edi, dword [ebp - 0xc2c]
add edx, 0x66
mov ecx, dword [ebp - 0xc08]
add edi, 0x40
add ecx, 0x170
mov dword [ebp - 0xc00], edx
cmp edx, 0xcc
mov dword [ebp - 0xc2c], edi
mov edx, dword [ebp - 0xd14]
mov dword [ebp - 0xc08], ecx
mov dword [ebp - 0xc30], esi
jb 0x10197640
add dword [ebp - 0xbd8], 1
xorps xmm0, xmm0
mov ecx, dword [ebp - 0xba0]
adc dword [ebp - 0xbd4], 0
add ecx, dword [ebp - 0xa90]
mov eax, dword [ebp - 0xb9c]
adc eax, dword [ebp - 0xa8c]
mov dword [ebp - 0xd14], eax
mov dword [ebp - 0xb9c], eax
mov eax, dword [ebp - 0xbf8]
mov dword [ebp - 0xba0], ecx
movlpd qword [ebp - 0xaa0], xmm0
movlpd qword [ebp - 0xa98], xmm0
lea eax, [eax + ecx*2]
movlpd qword [ebp - 0x930], xmm0
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xb78], eax
add eax, ecx
mov dword [ebp - 0xb74], eax
add eax, ecx
mov dword [ebp - 0xb70], eax
add eax, ecx
mov dword [ebp - 0xb6c], eax
add eax, ecx
mov dword [ebp - 0xb68], eax
add eax, ecx
mov dword [ebp - 0xb64], eax
add eax, ecx
mov dword [ebp - 0xb60], eax
add eax, ecx
add dword [ebp - 0xa68], 1
mov ecx, dword [ebp - 0xa30]
adc dword [ebp - 0xa64], 0
add ecx, dword [ebp - 0x920]
mov dword [ebp - 0xb5c], eax
mov eax, dword [ebp - 0xa2c]
adc eax, dword [ebp - 0x91c]
mov dword [ebp - 0xa2c], eax
mov dword [ebp - 0xd14], eax
mov eax, dword [ebp - 0xa88]
mov dword [ebp - 0xa30], ecx
movlpd qword [ebp - 0x928], xmm0
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0xc44]
mov dword [ebp - 0xa08], eax
add eax, ecx
mov dword [ebp - 0xa04], eax
add eax, ecx
mov dword [ebp - 0xa00], eax
add eax, ecx
mov dword [ebp - 0x9fc], eax
add eax, ecx
mov dword [ebp - 0x9f8], eax
add eax, ecx
mov dword [ebp - 0x9f4], eax
add eax, ecx
mov dword [ebp - 0x9f0], eax
add eax, ecx
mov dword [ebp - 0x9ec], eax
mov eax, dword [ebp - 0x614]
cmp eax, dword [ebp - 0x5d4]
jb 0x101975d0
ja 0x10198cd6
mov eax, dword [ebp - 0x618]
cmp eax, dword [ebp - 0x5d8]
jb 0x101975d0
push dword [ebp - 0x60c]
mov ecx, dword [ebp - 0x620]
mov eax, dword [ebp - 0x61c]
add ecx, 2
push dword [ebp - 0x610]
adc eax, 0
movlpd qword [ebp - 0x4e0], xmm0
push eax
push ecx
movlpd qword [ebp - 0x4d8], xmm0
movlpd qword [ebp - 0x618], xmm0
mov dword [ebp - 0x620], ecx
mov dword [ebp - 0x61c], eax
call fcn.1019d680
mov ecx, dword [ebp - 0x638]
xorps xmm0, xmm0
push dword [ebp - 0x49c]
mov dword [ebp - 0x5e0], eax
push dword [ebp - 0x4a0]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x5dc], edx
mov eax, dword [ebp - 0x5e8]
mov dword [ebp - 0x5b8], ecx
movlpd qword [ebp - 0x370], xmm0
movlpd qword [ebp - 0x368], xmm0
lea ecx, [ecx + eax*2]
movlpd qword [ebp - 0x4a8], xmm0
add eax, eax
mov dword [ebp - 0x5b4], ecx
add ecx, eax
mov dword [ebp - 0x5b0], ecx
add ecx, eax
mov dword [ebp - 0x5ac], ecx
add ecx, eax
mov dword [ebp - 0x5a8], ecx
add ecx, eax
mov dword [ebp - 0x5a4], ecx
add ecx, eax
add eax, ecx
mov dword [ebp - 0x5a0], ecx
mov ecx, dword [ebp - 0x4b0]
add ecx, 2
mov dword [ebp - 0x59c], eax
mov eax, dword [ebp - 0x4ac]
adc eax, 0
mov dword [ebp - 0x4b0], ecx
push eax
push ecx
mov dword [ebp - 0x4ac], eax
call fcn.1019d680
mov ecx, dword [ebp - 0x4c8]
xorps xmm0, xmm0
mov dword [ebp - 0x470], eax
mov dword [ebp - 0x46c], edx
movlpd qword [ebp - 0x7c0], xmm0
lea ecx, [ecx + eax*2]
movlpd qword [ebp - 0x7b8], xmm0
mov eax, dword [ebp - 0x478]
mov dword [ebp - 0x448], ecx
movlpd qword [ebp - 0x8f8], xmm0
lea ecx, [ecx + eax*2]
add eax, eax
mov dword [ebp - 0x444], ecx
add ecx, eax
mov dword [ebp - 0x440], ecx
add ecx, eax
mov dword [ebp - 0x43c], ecx
add ecx, eax
mov dword [ebp - 0x438], ecx
add ecx, eax
mov dword [ebp - 0x434], ecx
add ecx, eax
add eax, ecx
mov dword [ebp - 0x430], ecx
mov ecx, dword [ebp - 0x900]
mov dword [ebp - 0x42c], eax
add ecx, 2
mov eax, dword [ebp - 0x8fc]
adc eax, 0
mov dword [ebp - 0x900], ecx
mov dword [ebp - 0x8fc], eax
push dword [ebp - 0x8ec]
push dword [ebp - 0x8f0]
push eax
push ecx
call fcn.1019d680
push edx
push eax
lea ecx, [ebp - 0x918]
mov dword [ebp - 0x8c0], eax
mov dword [ebp - 0x8bc], edx
call fcn.10084950
push dword [ebp - 0x77c]
mov ecx, dword [ebp - 0x790]
xorps xmm0, xmm0
mov eax, dword [ebp - 0x78c]
add ecx, 2
push dword [ebp - 0x780]
adc eax, 0
movlpd qword [ebp - 0x650], xmm0
push eax
push ecx
movlpd qword [ebp - 0x648], xmm0
movlpd qword [ebp - 0x788], xmm0
mov dword [ebp - 0x790], ecx
mov dword [ebp - 0x78c], eax
call fcn.1019d680
push edx
push eax
lea ecx, [ebp - 0x7a8]
mov dword [ebp - 0x750], eax
mov dword [ebp - 0x74c], edx
call fcn.10084950
cmp dword [ebp - 0x2e0], 1
xorps xmm0, xmm0
movlpd qword [ebp - 0x340], xmm0
jne 0x10198f0a
cmp dword [ebp - 0x2dc], 0
je 0x10198f22
mov eax, dword [ebp - 0x320]
mov ecx, dword [ebp - 0x31c]
mov dword [ebp - 0x308], eax
mov dword [ebp - 0x304], ecx
mov eax, dword [ebp - 0x348]
mov ecx, dword [ebp - 0x344]
add eax, 2
mov esi, dword [ebp - 0x2d4]
mov edx, dword [ebp - 0x2d8]
adc ecx, 0
cmp ecx, esi
jb 0x10198f8c
ja 0x10198f4a
cmp eax, edx
jb 0x10198f8c
add edx, 0xffffffff
mov dword [ebp - 0x348], edx
mov edx, dword [ebp - 0x2ec]
adc esi, 0xffffffff
mov dword [ebp - 0x344], esi
mov eax, edx
mov esi, dword [ebp - 0x2f0]
mov ecx, esi
add ecx, 0xffffffff
mov dword [ebp - 0x2fc], edx
mov dword [ebp - 0x278], ecx
adc eax, 0xffffffff
mov dword [ebp - 0xc44], edx
mov dword [ebp - 0x274], eax
jmp 0x10198fd4
mov dword [ebp - 0x348], eax
add eax, 1
mov dword [ebp - 0x344], ecx
adc ecx, 0
movlpd qword [ebp - 0x278], xmm0
xor eax, edx
xor ecx, esi
or eax, ecx
je 0x10198fbc
mov esi, dword [ebp - 0x318]
mov eax, dword [ebp - 0x314]
jmp 0x10198fc8
mov esi, dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x2ec]
mov dword [ebp - 0x2fc], eax
mov dword [ebp - 0xc44], eax
mov dword [ebp - 0x300], esi
mov byte [ebp + esi - 0x288], 0
push dword [ebp - 0x344]
push dword [ebp - 0x348]
push dword [ebp - 0x334]
push dword [ebp - 0x338]
call fcn.1019d680
push edx
push eax
lea ecx, [ebp - 0x358]
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2e4], edx
call fcn.10084950
cmp dword [ebp - 0x148], 1
xorps xmm0, xmm0
movlpd qword [ebp - 0x1a8], xmm0
jne 0x10199035
cmp dword [ebp - 0x144], 0
je 0x1019904d
mov eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x184]
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], ecx
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1ac]
add eax, 2
mov esi, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x140]
adc ecx, 0
cmp ecx, esi
jb 0x101990b7
ja 0x10199075
cmp eax, edx
jb 0x101990b7
add edx, 0xffffffff
mov dword [ebp - 0x1b0], edx
mov edx, dword [ebp - 0x154]
adc esi, 0xffffffff
mov dword [ebp - 0x1ac], esi
mov eax, edx
mov esi, dword [ebp - 0x158]
mov ecx, esi
add ecx, 0xffffffff
mov dword [ebp - 0x164], edx
mov dword [ebp - 0xe0], ecx
adc eax, 0xffffffff
mov dword [ebp - 0xc44], edx
mov dword [ebp - 0xdc], eax
jmp 0x101990ff
mov dword [ebp - 0x1b0], eax
add eax, 1
mov dword [ebp - 0x1ac], ecx
adc ecx, 0
movlpd qword [ebp - 0xe0], xmm0
xor eax, edx
xor ecx, esi
or eax, ecx
je 0x101990e7
mov esi, dword [ebp - 0x180]
mov eax, dword [ebp - 0x17c]
jmp 0x101990f3
mov esi, dword [ebp - 0x158]
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x164], eax
mov dword [ebp - 0xc44], eax
mov dword [ebp - 0x168], esi
mov byte [ebp + esi - 0xf0], 0
push dword [ebp - 0x1ac]
push dword [ebp - 0x1b0]
push dword [ebp - 0x19c]
push dword [ebp - 0x1a0]
call fcn.1019d680
push edx
push eax
lea ecx, [ebp - 0x1c0]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
call fcn.10084950
push dword [ebp - 0xbcc]
mov ecx, dword [ebp - 0xbe0]
xorps xmm0, xmm0
mov eax, dword [ebp - 0xbdc]
add ecx, 1
push dword [ebp - 0xbd0]
adc eax, 0
movlpd qword [ebp - 0xbd8], xmm0
push eax
push ecx
mov dword [ebp - 0xbe0], ecx
mov dword [ebp - 0xbdc], eax
call fcn.1019d680
push edx
push eax
lea ecx, [ebp - 0xbf8]
mov dword [ebp - 0xba0], eax
mov dword [ebp - 0xb9c], edx
call fcn.10084950
push dword [ebp - 0xa5c]
mov ecx, dword [ebp - 0xa70]
xorps xmm0, xmm0
mov eax, dword [ebp - 0xa6c]
add ecx, 1
push dword [ebp - 0xa60]
adc eax, 0
movlpd qword [ebp - 0xa68], xmm0
push eax
push ecx
mov dword [ebp - 0xa70], ecx
mov dword [ebp - 0xa6c], eax
call fcn.1019d680
push edx
push eax
lea ecx, [ebp - 0xa88]
mov dword [ebp - 0xa30], eax
mov dword [ebp - 0xa2c], edx
call fcn.10084950
mov eax, dword [ebp - 0x61c]
cmp eax, dword [ebp - 0x5cc]
jb 0x101975b0
ja 0x10199213
mov eax, dword [ebp - 0x620]
cmp eax, dword [ebp - 0x5d0]
jb 0x101975b0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.1019d470
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x48