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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov eax, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
mov edi, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
mov ecx, dword [eax + 0xc8]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x58], edi
mov edx, dword [esp + 0xc0]
cmp ecx, 6
je 0x10246558
cmp ecx, 7
je 0x10246898
cmp ecx, 5
je 0x10246870
mov dword [esp + 0xb4], edx
mov ecx, ebp
mov edx, ebx
mov dword [esp + 0xb0], edi
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
jmp 0x102552d0
mov ebx, dword [eax + 0x5c]
mov edi, dword [eax + 4]
mov esi, 1
mov ecx, dword [eax + 0xb8]
mov dword [esp + 0x20], ebx
mov ebx, dword [eax + 0xc0]
shl esi, cl
mov dword [esp + 0x1c], edi
mov dword [esp + 0x34], ebx
mov ebx, dword [eax + 0x64]
mov ecx, esi
mov esi, dword [eax + 0xc]
mov dword [esp + 0x54], ebx
mov ebx, dword [eax + 0xbc]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x58]
sub ebx, edi
add ebx, edx
mov edi, ebx
sub ebx, ecx
sub edi, esi
cmp ecx, edi
mov edi, ebx
mov ebx, dword [esp + 0x58]
cmovae edi, esi
add ebx, edx
mov dword [esp + 0x64], ebx
sub ebx, 8
mov dword [esp + 0x44], ebx
mov ebx, dword [ebp]
mov dword [esp + 0x28], edi
mov dword [esp + 0x60], ebx
mov ebx, dword [ebp + 4]
mov dword [esp + 0x68], ebx
test eax, eax
jne 0x10246b90
mov ebx, dword [esp + 0x1c]
mov eax, edi
mov edi, dword [esp + 0x58]
add eax, ebx
cmp edi, eax
mov dword [esp + 0x6c], eax
sete al
movzx eax, al
add eax, edi
mov edx, eax
sub eax, ebx
sub eax, esi
cmp eax, ecx
cmova eax, ecx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x7c], 0
cmp eax, ebx
jae 0x10246617
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x68], 0
mov ebx, dword [esp + 0x60]
cmp eax, ebx
jae 0x102472e0
mov dword [esp + 0x60], 0
mov edi, 1
mov eax, edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x77], al
mov dword [esp + 0x78], ebp
mov ebp, edx
lea eax, [ebp + 0x100]
lea ebx, [ebp + 1]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x44], ebx
jb 0x1024816a
cmp dword [esp + 0x34], 0x20
ja 0x10247280
mov edi, dword [ebp]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x34]
mov esi, 0x40
imul ecx, ecx, 0xb7a56463
mov dword [esp + 0x2c], 1
mov eax, esi
sub eax, edx
mov dword [esp + 0x40], eax
imul eax, edi, 0xcf1bbcdc
add ecx, eax
mov eax, 0xb7a56463
mul edi
mov edi, dword [esp + 0x20]
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x60]
cmovne eax, edx
mov edi, dword [edi + eax*4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], edi
add eax, edi
test ecx, ecx
mov dword [esp + 0x30], eax
mov eax, 1
setne byte [esp + 0x76]
sub eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
sub esi, eax
mov dword [esp + 0x48], esi
jmp 0x1024670b
add dword [esp + 0x2c], 1
mov edi, dword [esp + 0x2c]
add eax, 0x100
mov dword [esp + 0x38], eax
lea eax, [ebx + edi]
cmp dword [esp + 0x44], eax
jb 0x10246820
mov ebp, ebx
mov ebx, eax
cmp dword [esp + 0x3c], 0x20
ja 0x10246c10
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
imul eax, esi, 0xcf1bbcdc
imul ecx, edi, 0xbf9b0000
mov edi, ebp
add ecx, eax
mov eax, 0xbf9b0000
mul esi
mov esi, dword [esp + 0x54]
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x1c]
cmovne eax, edx
mov edx, dword [esp + 0x18]
sub edi, ecx
shl eax, 2
add eax, esi
mov esi, dword [eax]
mov dword [eax], edi
mov eax, dword [esp + 0x20]
mov dword [eax + edx*4], edi
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebp + 1]
cmp dword [ebp + eax], ecx
jne 0x1024677b
cmp byte [esp + 0x76], 0
jne 0x10246fb0
cmp dword [esp + 0x34], 0x20
ja 0x10246c60
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
imul edx, eax, 0xcf1bbcdc
imul ecx, ecx, 0xb7a56463
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x102467b3
mov eax, edx
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x28], ecx
jae 0x102467d8
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 4]
mov eax, dword [eax]
xor edx, dword [ebp + 4]
xor eax, dword [ebp]
or eax, edx
je 0x10247520
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x24], eax
add eax, edx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x28], esi
jae 0x10246804
add esi, edx
mov eax, dword [ebp]
cmp dword [esi], eax
je 0x10247580
mov eax, dword [esp + 0x38]
cmp ebx, eax
jae 0x102466e8
mov eax, dword [esp + 0x2c]
add eax, ebx
cmp dword [esp + 0x44], eax
jae 0x10246707
mov ebx, dword [esp + 0x70]
movzx edi, byte [esp + 0x77]
mov ebp, dword [esp + 0x78]
mov eax, edi
test al, al
je 0x10246d20
cmp byte [esp + 0x76], 0
je 0x10246d20
mov eax, dword [esp + 0x60]
mov dword [ebp], eax
mov eax, dword [esp + 0x68]
test eax, eax
cmovne ebx, eax
mov eax, dword [esp + 0x64]
mov dword [ebp + 4], ebx
mov ebx, dword [esp + 0x58]
add esp, 0x9c
sub eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x50]
mov ecx, ebp
mov dword [esp + 0xb0], edi
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
jmp 0x10256a40
mov ebx, dword [eax + 0x5c]
mov esi, dword [eax + 4]
mov ecx, dword [eax + 0xb8]
mov dword [esp + 0x20], ebx
mov ebx, dword [eax + 0xc0]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x34], ebx
mov ebx, dword [eax + 0x64]
mov dword [esp + 0x54], ebx
mov ebx, dword [eax + 0xbc]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x58]
sub ebx, esi
mov esi, 1
shl esi, cl
add ebx, edx
mov ecx, esi
mov esi, dword [eax + 0xc]
mov edi, ebx
mov eax, dword [eax + 0x18]
sub ebx, ecx
sub edi, esi
cmp ecx, edi
mov edi, ebx
mov ebx, dword [esp + 0x58]
cmovae edi, esi
add ebx, edx
mov dword [esp + 0x64], ebx
sub ebx, 8
mov dword [esp + 0x44], ebx
mov ebx, dword [ebp]
mov dword [esp + 0x28], edi
mov dword [esp + 0x60], ebx
mov ebx, dword [ebp + 4]
mov dword [esp + 0x68], ebx
test eax, eax
jne 0x10246b68
mov ebx, dword [esp + 0x1c]
mov eax, edi
mov edi, dword [esp + 0x58]
add eax, ebx
cmp edi, eax
mov dword [esp + 0x6c], eax
sete al
movzx eax, al
add eax, edi
mov edx, eax
sub eax, ebx
sub eax, esi
cmp eax, ecx
cmova eax, ecx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x7c], 0
cmp eax, ebx
jae 0x10246957
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x68], 0
mov ebx, dword [esp + 0x60]
cmp eax, ebx
jae 0x102472f0
mov dword [esp + 0x60], 0
mov edi, 1
mov eax, edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x77], al
mov dword [esp + 0x78], ebp
mov ebp, edx
lea eax, [ebp + 0x100]
lea ebx, [ebp + 1]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x44], ebx
jb 0x1024816a
cmp dword [esp + 0x34], 0x20
ja 0x10247220
mov edi, dword [ebp]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x34]
mov esi, 0x40
imul ecx, ecx, 0xb7a56463
mov dword [esp + 0x2c], 1
mov eax, esi
sub eax, edx
mov dword [esp + 0x40], eax
imul eax, edi, 0xcf1bbcdc
add ecx, eax
mov eax, 0xb7a56463
mul edi
mov edi, dword [esp + 0x20]
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x60]
cmovne eax, edx
mov edi, dword [edi + eax*4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], edi
add eax, edi
test ecx, ecx
mov dword [esp + 0x30], eax
mov eax, 1
setne byte [esp + 0x76]
sub eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
sub esi, eax
mov dword [esp + 0x48], esi
jmp 0x10246a4b
add dword [esp + 0x2c], 1
mov esi, dword [esp + 0x2c]
add eax, 0x100
mov dword [esp + 0x38], eax
lea eax, [ebx + esi]
cmp dword [esp + 0x44], eax
jb 0x10246820
mov ebp, ebx
mov ebx, eax
cmp dword [esp + 0x3c], 0x20
ja 0x10246bc0
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
imul eax, esi, 0xcf1bbcdc
imul ecx, edi, 0xbfa56300
mov edi, ebp
add ecx, eax
mov eax, 0xbfa56300
mul esi
mov esi, dword [esp + 0x54]
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x18]
cmovne eax, edx
mov edx, dword [esp + 0x1c]
shl eax, 2
sub edi, edx
add eax, esi
mov esi, dword [eax]
mov dword [eax], edi
mov eax, dword [esp + 0x20]
mov dword [eax + ecx*4], edi
mov eax, dword [esp + 0x4c]
mov edx, dword [ebp + 1]
cmp dword [ebp + eax], edx
jne 0x10246abb
cmp byte [esp + 0x76], 0
jne 0x10246d38
cmp dword [esp + 0x34], 0x20
ja 0x10246cc0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
imul edx, eax, 0xcf1bbcdc
imul ecx, ecx, 0xb7a56463
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10246af3
mov eax, edx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x28], edx
jae 0x10246b18
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 4]
mov eax, dword [eax]
xor edx, dword [ebp + 4]
xor eax, dword [ebp]
or eax, edx
je 0x102474c0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
add eax, edx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x28], esi
jae 0x10246b44
add esi, edx
mov eax, dword [ebp]
cmp dword [esi], eax
je 0x10247610
mov eax, dword [esp + 0x38]
cmp ebx, eax
jae 0x10246a28
mov eax, dword [esp + 0x2c]
add eax, ebx
cmp dword [esp + 0x44], eax
jae 0x10246a47
jmp 0x10246820
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x28], esi
lea eax, [ebx + esi]
cmp edi, eax
mov dword [esp + 0x6c], eax
sete al
movzx eax, al
add eax, edi
mov edx, eax
sub eax, ebx
sub eax, esi
jmp 0x1024693b
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x28], esi
lea eax, [ebx + esi]
cmp edi, eax
mov dword [esp + 0x6c], eax
sete al
movzx eax, al
add eax, edi
mov edx, eax
sub eax, ebx
sub eax, esi
jmp 0x102465fb
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call dword [sym.imp.msvcrt.dll__assert]
cmp dword [esp + 0x3c], 0x40
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
jbe 0x10246a5c
mov dword [esp + 8], 0x333
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10246a5c
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call dword [sym.imp.msvcrt.dll__assert]
cmp dword [esp + 0x3c], 0x40
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
jbe 0x1024671c
mov dword [esp + 8], 0x32e
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1024671c
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call dword [sym.imp.msvcrt.dll__assert]
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
jbe 0x1024678b
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call dword [sym.imp.msvcrt.dll__assert]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x18]
jmp 0x1024678b
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call dword [sym.imp.msvcrt.dll__assert]
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
jbe 0x10246acb
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call dword [sym.imp.msvcrt.dll__assert]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x18]
jmp 0x10246acb
mov esi, dword [esp + 0x60]
test esi, esi
jne 0x10246d2c
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x7c]
jmp 0x10246842
mov ebx, dword [esp + 0x60]
mov eax, ebp
lea esi, [ebp + 5]
mov dword [esp + 0x5c], edi
sub eax, ebx
lea edx, [eax + 5]
mov eax, dword [esp + 0x64]
sub eax, 3
mov dword [esp + 0x4c], eax
cmp esi, eax
jae 0x10247480
mov eax, dword [edx]
mov ecx, dword [ebp + 5]
cmp eax, ecx
je 0x1024796a
xor eax, ecx
tzcnt eax, eax
shr eax, 3
mov dword [esp + 0x2c], eax
mov ebx, dword [esp + 0x58]
add ebp, 1
lea edi, [eax + 4]
mov eax, ebp
sub eax, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
sub eax, 0x20
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
cmp eax, dword [ebx + 0x1c]
jae 0x102476c1
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
cmp eax, 0x20000
ja 0x10247698
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
add eax, dword [ebx + 8]
add edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x10247705
cmp dword [esp + 0x64], ebp
jb 0x102476e3
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0xc]
cmp dword [esp + 0x18], ebp
jb 0x10247428
mov edx, dword [esp + 0x58]
mov ebx, dword [edx]
mov esi, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x80], ebx
mov dword [eax], ebx
mov ebx, dword [esp + 0x24]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
cmp ebx, 0x10
ja 0x10247892
add dword [eax + 0xc], ebx
mov eax, dword [eax + 4]
movzx ebx, word [esp + 0x24]
mov dword [eax], 1
mov word [eax + 4], bx
mov ebx, dword [esp + 0x2c]
add ebx, 1
cmp edi, 2
jbe 0x102473d8
cmp ebx, 0xffff
ja 0x102473f5
mov word [eax + 6], bx
add eax, 8
mov ebx, dword [esp + 0x50]
add ebp, edi
mov dword [esp + 0x58], ebp
mov dword [ebx + 4], eax
cmp dword [esp + 0x44], ebp
jb 0x10246980
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x5c]
lea eax, [ebp - 2]
add edi, 2
sub eax, ecx
cmp dword [esp + 0x34], 0x20
mov dword [esp + 0x24], edi
lea ebx, [ecx + edi]
mov esi, eax
ja 0x1024893d
imul eax, dword [ebx], 0xcf1bbcdc
imul ecx, dword [ebx + 4], 0xb7a56463
add ecx, eax
mov eax, 0xb7a56463
mul dword [ebx]
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10246ecf
mov eax, edx
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 2]
mov dword [ecx + eax*4], edi
mov eax, dword [ebp - 2]
imul edx, edx, 0xb7a56463
mov edi, dword [esp + 0x20]
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov dword [edi + eax*4], esi
mov edi, dword [esp + 0x1c]
lea eax, [ebp - 1]
sub eax, edi
cmp dword [esp + 0x3c], 0x20
mov esi, eax
ja 0x10248876
imul eax, dword [ebx], 0xcf1bbcdc
mov edi, dword [esp + 0x24]
imul ecx, dword [ebx + 4], 0xbfa56300
add ecx, eax
mov eax, 0xbfa56300
mul dword [ebx]
mov ebx, dword [esp + 0x54]
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, dword [ebp - 1]
mov dword [ebx + eax*4], edi
mov ebx, dword [ebp + 3]
imul eax, edx, 0xcf1bbcdc
imul ecx, ebx, 0xbfa56300
mov ebx, dword [esp + 0x54]
add ecx, eax
mov eax, 0xbfa56300
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov dword [ebx + eax*4], esi
mov ebx, dword [esp + 0x68]
mov eax, ebp
mov edi, dword [ebp]
sub eax, ebx
cmp dword [eax], edi
jne 0x10246fa2
mov esi, dword [esp + 0x50]
test ebx, ebx
jne 0x102483dd
mov dword [esp + 0x58], ebp
jmp 0x10246980
mov ebx, dword [esp + 0x60]
mov eax, ebp
lea esi, [ebp + 5]
mov dword [esp + 0x5c], edi
sub eax, ebx
lea edx, [eax + 5]
mov eax, dword [esp + 0x64]
sub eax, 3
mov dword [esp + 0x4c], eax
cmp esi, eax
jae 0x10247300
mov eax, dword [edx]
mov ecx, dword [ebp + 5]
cmp eax, ecx
je 0x102479a0
xor eax, ecx
tzcnt eax, eax
shr eax, 3
mov dword [esp + 0x2c], eax
mov ebx, dword [esp + 0x58]
add ebp, 1
lea edi, [eax + 4]
mov eax, ebp
sub eax, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
sub eax, 0x20
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
cmp eax, dword [ebx + 0x1c]
jae 0x10247794
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
cmp eax, 0x20000
ja 0x1024776b
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
add eax, dword [ebx + 8]
add edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x10247749
cmp dword [esp + 0x64], ebp
jb 0x10247727
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0xc]
cmp dword [esp + 0x18], ebp
jb 0x10247388
mov edx, dword [esp + 0x58]
mov ebx, dword [edx]
mov esi, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x80], ebx
mov dword [eax], ebx
mov ebx, dword [esp + 0x24]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
cmp ebx, 0x10
ja 0x102477b6
add dword [eax + 0xc], ebx
mov eax, dword [eax + 4]
movzx ebx, word [esp + 0x24]
mov dword [eax], 1
mov word [eax + 4], bx
mov ebx, dword [esp + 0x2c]
add ebx, 1
cmp edi, 2
jbe 0x10247339
cmp ebx, 0xffff
ja 0x10247356
mov word [eax + 6], bx
add eax, 8
mov ebx, dword [esp + 0x50]
add ebp, edi
mov dword [esp + 0x58], ebp
mov dword [ebx + 4], eax
cmp dword [esp + 0x44], ebp
jb 0x10246640
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x5c]
lea eax, [ebp - 2]
add edi, 2
sub eax, ecx
cmp dword [esp + 0x34], 0x20
mov dword [esp + 0x24], edi
lea ebx, [ecx + edi]
mov esi, eax
ja 0x10248adc
imul eax, dword [ebx], 0xcf1bbcdc
imul ecx, dword [ebx + 4], 0xb7a56463
add ecx, eax
mov eax, 0xb7a56463
mul dword [ebx]
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10247147
mov eax, edx
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 2]
mov dword [ecx + eax*4], edi
mov eax, dword [ebp - 2]
imul edx, edx, 0xb7a56463
mov edi, dword [esp + 0x20]
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov dword [edi + eax*4], esi
mov edi, dword [esp + 0x1c]
lea eax, [ebp - 1]
sub eax, edi
cmp dword [esp + 0x3c], 0x20
mov esi, eax
ja 0x10248a15
imul eax, dword [ebx], 0xcf1bbcdc
mov edi, dword [esp + 0x24]
imul ecx, dword [ebx + 4], 0xbf9b0000
add ecx, eax
mov eax, 0xbf9b0000
mul dword [ebx]
mov ebx, dword [esp + 0x54]
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, dword [ebp - 1]
mov dword [ebx + eax*4], edi
mov ebx, dword [ebp + 3]
imul eax, edx, 0xcf1bbcdc
imul ecx, ebx, 0xbf9b0000
mov ebx, dword [esp + 0x54]
add ecx, eax
mov eax, 0xbf9b0000
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov dword [ebx + eax*4], esi
mov ebx, dword [esp + 0x68]
mov eax, ebp
mov edi, dword [ebp]
sub eax, ebx
cmp dword [eax], edi
jne 0x10247216
test ebx, ebx
jne 0x10248c28
mov dword [esp + 0x58], ebp
jmp 0x10246640
mov dword [esp + 8], 0x342
mov esi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call esi
cmp dword [esp + 0x34], 0x40
mov edi, dword [ebp]
mov ecx, dword [ebp + 4]
jbe 0x102469a8
mov dword [esp + 0x18], ecx
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call esi
mov ecx, dword [esp + 0x18]
jmp 0x102469a8
mov dword [esp + 8], 0x342
mov esi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call esi
cmp dword [esp + 0x34], 0x40
mov edi, dword [ebp]
mov ecx, dword [ebp + 4]
jbe 0x10246668
mov dword [esp + 0x18], ecx
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call esi
mov ecx, dword [esp + 0x18]
jmp 0x10246668
xor edi, edi
xor ebx, ebx
jmp 0x10246630
xor edi, edi
xor ebx, ebx
jmp 0x10246970
mov eax, esi
mov ebx, dword [esp + 0x64]
lea ecx, [ebx - 1]
cmp eax, ecx
jae 0x10247319
movzx ebx, word [eax]
cmp word [edx], bx
je 0x1024831a
mov ebx, dword [esp + 0x64]
cmp eax, ebx
jae 0x1024732e
movzx ebx, byte [eax]
cmp byte [edx], bl
sete dl
movzx edx, dl
add eax, edx
sub eax, esi
mov dword [esp + 0x2c], eax
jmp 0x10246fef
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x102485d2
mov esi, dword [esp + 0x50]
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x102470dc
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x58]
mov ecx, ebp
mov dword [esp], ebx
call fcn.102a7010
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
add dword [ebx + 0xc], eax
cmp eax, 0xffff
jbe 0x10248598
mov edx, dword [ebx + 0x24]
test edx, edx
jne 0x102485f4
mov ebx, dword [esp + 0x50]
mov eax, dword [ebx + 4]
mov dword [ebx + 0x24], 1
mov edx, eax
sub edx, dword [ebx]
sar edx, 3
mov dword [ebx + 0x28], edx
jmp 0x102470b1
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x10248616
mov esi, dword [esp + 0x50]
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x10246e64
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x58]
mov ecx, ebp
mov dword [esp], ebx
call fcn.102a7010
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
add dword [ebx + 0xc], eax
cmp eax, 0xffff
jbe 0x10248590
mov edx, dword [ebx + 0x24]
test edx, edx
jne 0x102485b0
mov ebx, dword [esp + 0x50]
mov eax, dword [ebx + 4]
mov dword [ebx + 0x24], 1
mov edx, eax
sub edx, dword [ebx]
sar edx, 3
mov dword [ebx + 0x28], edx
jmp 0x10246e39
mov eax, esi
mov ebx, dword [esp + 0x64]
lea ecx, [ebx - 1]
cmp eax, ecx
jae 0x10247499
movzx ebx, word [eax]
cmp word [edx], bx
je 0x1024830f
mov ebx, dword [esp + 0x64]
cmp eax, ebx
jae 0x102474ae
movzx ebx, byte [eax]
cmp byte [edx], bl
sete dl
movzx edx, dl
add eax, edx
sub eax, esi
mov dword [esp + 0x2c], eax
jmp 0x10246d77
mov eax, dword [esp + 0x64]
lea esi, [ebp + 8]
mov dword [esp + 0x5c], edi
sub eax, 3
cmp esi, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
jae 0x10247cca
mov eax, dword [eax + 8]
mov edx, dword [ebp + 8]
cmp eax, edx
jne 0x102482bb
mov eax, dword [esp + 0x30]
lea ecx, [ebp + 0xc]
lea edi, [eax + 0xc]
mov eax, dword [esp + 0x4c]
cmp ecx, eax
jae 0x10247ccf
mov eax, dword [edi]
mov edx, dword [ecx]
cmp eax, edx
je 0x10248710
xor eax, edx
tzcnt eax, eax
shr eax, 3
add ecx, eax
sub ecx, esi
jmp 0x10247cf6
mov eax, dword [esp + 0x64]
lea esi, [ebp + 8]
mov dword [esp + 0x5c], edi
sub eax, 3
cmp esi, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
jae 0x102479d6
mov eax, dword [eax + 8]
mov edx, dword [ebp + 8]
cmp eax, edx
jne 0x102482ab
mov eax, dword [esp + 0x30]
lea ecx, [ebp + 0xc]
lea edi, [eax + 0xc]
mov eax, dword [esp + 0x4c]
cmp ecx, eax
jae 0x102479db
mov eax, dword [edi]
mov edx, dword [ecx]
cmp eax, edx
je 0x102486f7
xor eax, edx
tzcnt eax, eax
shr eax, 3
add ecx, eax
sub ecx, esi
jmp 0x10247a02
mov eax, dword [esp + 0x64]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x24]
sub eax, 3
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x28], edi
jae 0x102475af
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 4]
mov eax, dword [eax]
xor edx, dword [ebx + 4]
xor eax, dword [ebx]
or eax, edx
je 0x102487d7
mov eax, dword [esp + 0x4c]
lea edi, [ebp + 4]
cmp edi, eax
jae 0x10248187
mov eax, dword [esi + 4]
mov edx, dword [ebp + 4]
cmp eax, edx
jne 0x102482ef
mov eax, dword [esp + 0x4c]
lea ecx, [ebp + 8]
lea edx, [esi + 8]
cmp ecx, eax
jae 0x1024818c
mov eax, dword [edx]
mov dword [esp + 0x24], eax
mov eax, dword [ecx]
cmp dword [esp + 0x24], eax
je 0x10248730
mov edx, dword [esp + 0x24]
xor edx, eax
xor eax, eax
tzcnt eax, edx
shr eax, 3
add ecx, eax
sub ecx, edi
jmp 0x102481b3
mov eax, dword [esp + 0x64]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x24]
sub eax, 3
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x28], edi
jae 0x1024763f
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 4]
mov eax, dword [eax]
xor edx, dword [ebx + 4]
xor eax, dword [ebx]
or eax, edx
je 0x10248750
mov eax, dword [esp + 0x4c]
lea edi, [ebp + 4]
cmp edi, eax
jae 0x10248207
mov eax, dword [esi + 4]
mov edx, dword [ebp + 4]
cmp eax, edx
jne 0x102482ff
mov eax, dword [esp + 0x4c]
lea ecx, [ebp + 8]
lea edx, [esi + 8]
cmp ecx, eax
jae 0x1024820c
mov eax, dword [edx]
mov dword [esp + 0x24], eax
mov eax, dword [ecx]
cmp dword [esp + 0x24], eax
je 0x1024885f
mov edx, dword [esp + 0x24]
xor edx, eax
xor eax, eax
tzcnt eax, edx
shr eax, 3
add ecx, eax
sub ecx, edi
jmp 0x10248233
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
jmp 0x10246dbb
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10246da9
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10246ddb
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10246dd1
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247053
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247049
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
jmp 0x10247033
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247021
mov edx, dword [eax + 0xc]
mov ebx, dword [esp + 0x58]
mov eax, edx
sub eax, ebx
add eax, 0xf
cmp eax, 0x1e
jbe 0x1024834f
mov eax, dword [esp + 0x58]
mov ebx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x80], ebx
mov dword [edx + 0x10], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], eax
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
mov dword [edx + 0x1c], eax
cmp ebx, 0x20
jle 0x1024739a
add ebx, edx
lea eax, [edx + 0x20]
mov dword [esp + 0x38], edi
mov edx, dword [esp + 0x58]
mov dword [esp + 0x30], ebp
mov ebp, ebx
add edx, 0x20
lea esi, [esi]
nop
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x80], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ecx
cmp eax, ebp
jb 0x10247830
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x38]
jmp 0x1024739a
mov edx, dword [eax + 0xc]
mov ebx, dword [esp + 0x58]
mov eax, edx
sub eax, ebx
add eax, 0xf
cmp eax, 0x1e
jbe 0x10248325
mov eax, dword [esp + 0x58]
mov ebx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x80], ebx
mov dword [edx + 0x10], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], eax
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
mov dword [edx + 0x1c], eax
cmp ebx, 0x20
jle 0x1024743a
add ebx, edx
lea eax, [edx + 0x20]
mov dword [esp + 0x38], edi
mov edx, dword [esp + 0x58]
mov dword [esp + 0x30], ebp
mov ebp, ebx
add edx, 0x20
lea esi, [esi]
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x80], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ecx
cmp eax, ebp
jb 0x10247908
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x38]
jmp 0x1024743a
mov ebx, dword [esp + 0x4c]
lea eax, [ebp + 9]
add edx, 4
cmp eax, ebx
jae 0x10247482
mov ecx, dword [edx]
mov ebx, dword [eax]
cmp ecx, ebx
je 0x102486e0
xor ecx, ebx
xor edx, edx
tzcnt edx, ecx
shr edx, 3
add eax, edx
sub eax, esi
mov dword [esp + 0x2c], eax
jmp 0x10246d77
mov ebx, dword [esp + 0x4c]
lea eax, [ebp + 9]
add edx, 4
cmp eax, ebx
jae 0x10247302
mov ecx, dword [edx]
mov ebx, dword [eax]
cmp ecx, ebx
je 0x102486c0
xor ecx, ebx
xor edx, edx
tzcnt edx, ecx
shr edx, 3
add eax, edx
sub eax, esi
mov dword [esp + 0x2c], eax
jmp 0x10246fef
lea edi, [eax + 8]
mov ecx, esi
mov eax, dword [esp + 0x64]
sub eax, 1
cmp ecx, eax
jae 0x102479f4
movzx eax, word [ecx]
cmp word [edi], ax
jne 0x102479f4
add ecx, 2
add edi, 2
mov eax, dword [esp + 0x64]
cmp ecx, eax
jb 0x10248299
sub ecx, esi
mov esi, dword [esp + 0x30]
mov eax, ebp
lea edi, [ecx + 8]
sub eax, esi
mov dword [esp + 0x38], eax
cmp dword [esp + 0x58], ebp
jae 0x10247a4c
cmp dword [esp + 0x6c], esi
jae 0x10247a4c
mov eax, esi
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
mov esi, ebx
jmp 0x10247a41
sub ebp, 1
sub eax, 1
add edi, 1
cmp edx, ebp
jae 0x10247a4a
cmp ecx, eax
jae 0x10247a4a
movzx ebx, byte [eax - 1]
cmp byte [ebp - 1], bl
je 0x10247a30
mov ebx, esi
cmp dword [esp + 0x2c], 3
ja 0x10247a64
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
sub ebx, eax
mov eax, dword [esp + 0x20]
mov dword [eax + esi*4], ebx
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x10247c19
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x58]
add eax, 3
mov dword [esp + 0x2c], eax
mov eax, ebp
sub eax, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
sub eax, 0x20
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
cmp eax, dword [ebx + 0x1c]
jae 0x10247ca8
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
cmp eax, 0x20000
ja 0x10247c7f
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
add eax, dword [ebx + 8]
add edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x10247c5d
cmp dword [esp + 0x64], ebp
jb 0x10247c3b
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0xc]
cmp dword [esp + 0x18], ebp
jb 0x10247b80
mov edx, dword [esp + 0x58]
mov ebx, dword [edx]
mov esi, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x80], ebx
mov dword [eax], ebx
mov ebx, dword [esp + 0x24]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
cmp ebx, 0x10
ja 0x10248092
add dword [eax + 0xc], ebx
mov eax, dword [eax + 4]
movzx ebx, word [esp + 0x24]
mov word [eax + 4], bx
mov ebx, dword [esp + 0x2c]
mov dword [eax], ebx
lea ebx, [edi - 3]
cmp edi, 2
jbe 0x10247bd0
cmp ebx, 0xffff
ja 0x10247bed
mov word [eax + 6], bx
mov ebx, dword [esp + 0x60]
add eax, 8
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x60], ebx
jmp 0x102470e3
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x58]
mov ecx, ebp
mov dword [esp], ebx
call fcn.102a7010
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
add dword [ebx + 0xc], eax
cmp eax, 0xffff
jbe 0x102485a8
mov edx, dword [ebx + 0x24]
test edx, edx
jne 0x1024865a
mov ebx, dword [esp + 0x50]
mov eax, dword [ebx + 4]
mov dword [ebx + 0x24], 1
mov edx, eax
sub edx, dword [ebx]
sar edx, 3
mov dword [ebx + 0x28], edx
jmp 0x10247b37
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x10248638
mov esi, dword [esp + 0x50]
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x10247b5e
mov dword [esp + 8], 0x10f
mov dword [esp + 4], str.zstd_lib_compress_zstd_double_fast.c
mov dword [esp], 0x1044cadd
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247a70
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247ad9
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247acf
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
jmp 0x10247ab9
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247aa7
lea edi, [eax + 8]
mov ecx, esi
mov eax, dword [esp + 0x64]
sub eax, 1
cmp ecx, eax
jae 0x10247ce8
movzx eax, word [ecx]
cmp word [edi], ax
jne 0x10247ce8
add ecx, 2
add edi, 2
mov eax, dword [esp + 0x64]
cmp ecx, eax
jb 0x10248287
sub ecx, esi
mov esi, dword [esp + 0x30]
mov eax, ebp
lea edi, [ecx + 8]
sub eax, esi
mov dword [esp + 0x38], eax
cmp dword [esp + 0x58], ebp
jae 0x10247d3c
cmp dword [esp + 0x6c], esi
jae 0x10247d3c
mov eax, esi
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
mov esi, ebx
jmp 0x10247d31
sub ebp, 1
sub eax, 1
add edi, 1
cmp edx, ebp
jae 0x10247d3a
cmp ecx, eax
jae 0x10247d3a
movzx ebx, byte [eax - 1]
cmp byte [ebp - 1], bl
je 0x10247d20
mov ebx, esi
cmp dword [esp + 0x2c], 3
ja 0x10247d54
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
sub ebx, eax
mov eax, dword [esp + 0x20]
mov dword [eax + esi*4], ebx
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x10247f09
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x58]
add eax, 3
mov dword [esp + 0x2c], eax
mov eax, ebp
sub eax, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
sub eax, 0x20
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
cmp eax, dword [ebx + 0x1c]
jae 0x10247f98
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
cmp eax, 0x20000
ja 0x10247f6f
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
add eax, dword [ebx + 8]
add edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x10247f4d
cmp dword [esp + 0x64], ebp
jb 0x10247f2b
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0xc]
cmp dword [esp + 0x18], ebp
jb 0x10247e70
mov edx, dword [esp + 0x58]
mov ebx, dword [edx]
mov esi, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x80], ebx
mov dword [eax], ebx
mov ebx, dword [esp + 0x24]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
cmp ebx, 0x10
ja 0x10247fba
add dword [eax + 0xc], ebx
mov eax, dword [eax + 4]
movzx ebx, word [esp + 0x24]
mov word [eax + 4], bx
mov ebx, dword [esp + 0x2c]
mov dword [eax], ebx
lea ebx, [edi - 3]
cmp edi, 2
jbe 0x10247ec0
cmp ebx, 0xffff
ja 0x10247edd
mov word [eax + 6], bx
mov ebx, dword [esp + 0x60]
add eax, 8
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x60], ebx
jmp 0x10246e6b
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x58]
mov ecx, ebp
mov dword [esp], ebx
call fcn.102a7010
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
add dword [ebx + 0xc], eax
cmp eax, 0xffff
jbe 0x102485a0
mov edx, dword [ebx + 0x24]
test edx, edx
jne 0x1024869e
mov ebx, dword [esp + 0x50]
mov eax, dword [ebx + 4]
mov dword [ebx + 0x24], 1
mov edx, eax
sub edx, dword [ebx]
sar edx, 3
mov dword [ebx + 0x28], edx
jmp 0x10247e27
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x1024867c
mov esi, dword [esp + 0x50]
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x10247e4e
mov dword [esp + 8], 0x10f
mov dword [esp + 4], str.zstd_lib_compress_zstd_double_fast.c
mov dword [esp], 0x1044cadd
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247d60
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247dc9
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247dbf
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
jmp 0x10247da9
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247d97
mov edx, dword [eax + 0xc]
mov ebx, dword [esp + 0x58]
mov eax, edx
sub eax, ebx
add eax, 0xf
cmp eax, 0x1e
jbe 0x102483a3
mov eax, dword [esp + 0x58]
mov ebx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x80], ebx
mov dword [edx + 0x10], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], eax
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
mov dword [edx + 0x1c], eax
cmp ebx, 0x20
jle 0x10247e82
add ebx, edx
lea eax, [edx + 0x20]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x58], edi
mov dword [esp + 0x30], ebp
mov ebp, ebx
add edx, 0x20
lea esi, [esi]
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x80], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ecx
cmp eax, ebp
jb 0x10248030
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x58]
jmp 0x10247e82
mov edx, dword [eax + 0xc]
mov ebx, dword [esp + 0x58]
mov eax, edx
sub eax, ebx
add eax, 0xf
cmp eax, 0x1e
jbe 0x10248379
mov eax, dword [esp + 0x58]
mov ebx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x80], ebx
mov dword [edx + 0x10], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], eax
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
mov dword [edx + 0x1c], eax
cmp ebx, 0x20
jle 0x10247b92
add ebx, edx
lea eax, [edx + 0x20]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x58], edi
mov dword [esp + 0x30], ebp
mov ebp, ebx
add edx, 0x20
lea esi, [esi]
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x80], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ecx
cmp eax, ebp
jb 0x10248108
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x58]
jmp 0x10247b92
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x70]
movzx edi, byte [esp + 0x77]
mov ebp, dword [esp + 0x78]
test eax, eax
setne byte [esp + 0x76]
jmp 0x1024682d
lea edx, [esi + 4]
mov ecx, edi
mov eax, dword [esp + 0x64]
sub eax, 1
cmp ecx, eax
jae 0x102481a5
movzx eax, word [ecx]
cmp word [edx], ax
jne 0x102481a5
add ecx, 2
add edx, 2
mov eax, dword [esp + 0x64]
cmp ecx, eax
jb 0x102482dd
sub ecx, edi
mov eax, ebp
lea edi, [ecx + 4]
sub eax, esi
mov dword [esp + 0x38], eax
cmp dword [esp + 0x6c], esi
jae 0x10247a4c
cmp dword [esp + 0x58], ebp
jae 0x10247a4c
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x58]
jmp 0x102481f9
sub ebp, 1
sub esi, 1
add edi, 1
cmp eax, ebp
jae 0x10247a4c
cmp edx, esi
jae 0x10247a4c
movzx ecx, byte [esi - 1]
cmp byte [ebp - 1], cl
je 0x102481e0
jmp 0x10247a4c
lea edx, [esi + 4]
mov ecx, edi
mov eax, dword [esp + 0x64]
sub eax, 1
cmp ecx, eax
jae 0x10248225
movzx eax, word [ecx]
cmp word [edx], ax
jne 0x10248225
add ecx, 2
add edx, 2
mov eax, dword [esp + 0x64]
cmp ecx, eax
jb 0x102482cb
sub ecx, edi
mov eax, ebp
lea edi, [ecx + 4]
sub eax, esi
mov dword [esp + 0x38], eax
cmp dword [esp + 0x58], ebp
jae 0x10247d3c
cmp dword [esp + 0x6c], esi
jae 0x10247d3c
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x58]
jmp 0x10248279
sub ebp, 1
sub esi, 1
add edi, 1
cmp eax, ebp
jae 0x10247d3c
cmp edx, esi
jae 0x10247d3c
movzx ecx, byte [esi - 1]
cmp byte [ebp - 1], cl
je 0x10248260
jmp 0x10247d3c
movzx eax, byte [ecx]
cmp byte [edi], al
sete al
movzx eax, al
add ecx, eax
jmp 0x10247cf4
movzx eax, byte [ecx]
cmp byte [edi], al
sete al
movzx eax, al
add ecx, eax
jmp 0x10247a00
xor eax, edx
xor ecx, ecx
tzcnt ecx, eax
shr ecx, 3
jmp 0x10247a02
xor eax, edx
xor ecx, ecx
tzcnt ecx, eax
shr ecx, 3
jmp 0x10247cf6
movzx eax, byte [ecx]
cmp byte [edx], al
sete al
movzx eax, al
add ecx, eax
jmp 0x10248231
movzx eax, byte [ecx]
cmp byte [edx], al
sete al
movzx eax, al
add ecx, eax
jmp 0x102481b1
xor eax, edx
xor ecx, ecx
tzcnt ecx, eax
shr ecx, 3
jmp 0x102481b3
xor eax, edx
xor ecx, ecx
tzcnt ecx, eax
shr ecx, 3
jmp 0x10248233
add eax, 2
add edx, 2
jmp 0x10247499
add eax, 2
add edx, 2
jmp 0x10247319
mov dword [esp + 0x30], edx
mov dword [esp + 8], 0xe9
mov dword [esp + 4], 0x1044c910
mov dword [esp], 0x1044c93c
call dword [sym.imp.msvcrt.dll__assert]
mov edx, dword [esp + 0x30]
jmp 0x102478a9
mov dword [esp + 0x30], edx
mov dword [esp + 8], 0xe9
mov dword [esp + 4], 0x1044c910
mov dword [esp], 0x1044c93c
call dword [sym.imp.msvcrt.dll__assert]
mov edx, dword [esp + 0x30]
jmp 0x102477cd
mov dword [esp + 0x30], edx
mov dword [esp + 8], 0xe9
mov dword [esp + 4], 0x1044c910
mov dword [esp], 0x1044c93c
call dword [sym.imp.msvcrt.dll__assert]
mov edx, dword [esp + 0x30]
jmp 0x102480a9
mov dword [esp + 0x30], edx
mov dword [esp + 8], 0xe9
mov dword [esp + 4], 0x1044c910
mov dword [esp], 0x1044c93c
call dword [sym.imp.msvcrt.dll__assert]
mov edx, dword [esp + 0x30]
jmp 0x10247fd1
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], ebx
mov eax, 4
lea ecx, [ebp + 4]
sub eax, ebx
mov ebx, dword [esp + 0x4c]
add eax, ebp
cmp ecx, ebx
jae 0x10248f3a
mov edx, dword [eax]
mov ebx, dword [ebp + 4]
cmp edx, ebx
je 0x102492ee
xor ebx, edx
tzcnt ebx, ebx
shr ebx, 3
lea eax, [ebx + 4]
mov edi, ebp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
sub edi, eax
cmp dword [esp + 0x3c], 0x20
ja 0x10249388
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
imul edx, edx, 0xbfa56300
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xbfa56300
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10248453
mov eax, edx
mov ecx, dword [esp + 0x54]
cmp dword [esp + 0x34], 0x20
mov dword [ecx + eax*4], edi
ja 0x10249322
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
imul edx, edx, 0xb7a56463
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10248493
mov eax, edx
mov ecx, dword [esp + 0x20]
mov dword [ecx + eax*4], edi
mov eax, dword [esi + 4]
sub eax, dword [esi]
sar eax, 3
cmp eax, dword [esi + 0x1c]
jae 0x10249471
mov eax, dword [esi + 0x20]
cmp eax, 0x20000
ja 0x1024944c
add eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x1024942a
cmp dword [esp + 0x64], ebp
jb 0x10249408
mov eax, dword [esi + 0xc]
cmp dword [esp + 0x18], ebp
jb 0x10248fb2
mov edi, dword [ebp]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x80], edi
mov edi, dword [ebp + 4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x84], edi
mov dword [esp + 0x8c], edx
mov edx, dword [ebp]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x88], ecx
mov dword [eax], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
mov eax, dword [esi + 4]
xor edx, edx
add ebx, 1
cmp dword [esp + 0x24], 2
mov word [eax + 4], dx
mov dword [eax], 1
jbe 0x10248f71
cmp ebx, 0xffff
ja 0x10248f8e
mov word [eax + 6], bx
add eax, 8
mov dword [esi + 4], eax
mov eax, dword [esp + 0x24]
add ebp, eax
cmp dword [esp + 0x44], ebp
jb 0x10249493
mov ebx, dword [esp + 0x60]
mov eax, ebp
mov edi, dword [ebp]
sub eax, ebx
cmp dword [eax], edi
sete dl
test ebx, ebx
setne al
test dl, al
jne 0x102483cd
mov eax, ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], ebx
jmp 0x10246fa2
mov eax, dword [ebx + 4]
jmp 0x10246e39
mov eax, dword [ebx + 4]
jmp 0x102470b1
mov eax, dword [ebx + 4]
jmp 0x10247e27
mov eax, dword [ebx + 4]
jmp 0x10247b37
mov dword [esp + 8], 0x2b2
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1024745b
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247365
mov dword [esp + 8], 0x2b2
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102473bb
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247404
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247bfc
mov dword [esp + 8], 0x2b2
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247bb3
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247eec
mov dword [esp + 8], 0x2b2
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10247ea3
mov ebx, dword [esp + 0x4c]
add eax, 4
add edx, 4
cmp eax, ebx
jb 0x102479b2
jmp 0x10247302
mov ebx, dword [esp + 0x4c]
add eax, 4
add edx, 4
cmp eax, ebx
jb 0x1024797c
jmp 0x10247482
mov eax, dword [esp + 0x4c]
add ecx, 4
add edi, 4
cmp ecx, eax
jb 0x10247562
jmp 0x102479db
mov eax, dword [esp + 0x4c]
add ecx, 4
add edi, 4
cmp ecx, eax
jb 0x10247502
jmp 0x10247ccf
mov eax, dword [esp + 0x4c]
add ecx, 4
add edx, 4
cmp ecx, eax
jb 0x102475de
jmp 0x1024818c
mov eax, dword [esp + 0x4c]
lea edi, [ebx + 8]
cmp edi, eax
mov eax, dword [esp + 0x30]
jae 0x10248bee
mov eax, dword [eax + 8]
mov edx, dword [ebx + 8]
cmp eax, edx
je 0x10248e20
xor eax, edx
tzcnt eax, eax
shr eax, 3
mov esi, dword [esp + 0x30]
lea edi, [eax + 8]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x38], eax
cmp dword [esp + 0x58], ebx
jae 0x102492c9
mov ebp, ebx
cmp dword [esp + 0x6c], esi
jae 0x102492c9
mov eax, esi
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x58]
mov esi, ebx
jmp 0x102487c9
sub ebp, 1
sub eax, 1
add edi, 1
cmp ecx, ebp
jae 0x10247d3a
cmp edx, eax
jae 0x10247d3a
movzx ebx, byte [eax - 1]
cmp byte [ebp - 1], bl
je 0x102487b0
jmp 0x10247d3a
mov eax, dword [esp + 0x4c]
lea edi, [ebx + 8]
cmp edi, eax
mov eax, dword [esp + 0x30]
jae 0x10248bb4
mov eax, dword [eax + 8]
mov edx, dword [ebx + 8]
cmp eax, edx
je 0x10248dea
xor eax, edx
tzcnt eax, eax
shr eax, 3
mov esi, dword [esp + 0x30]
lea edi, [eax + 8]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x38], eax
cmp dword [esp + 0x58], ebx
jae 0x102492d0
mov ebp, ebx
cmp dword [esp + 0x6c], esi
jae 0x102492d0
mov eax, esi
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x58]
mov esi, ebx
jmp 0x10248851
sub ebp, 1
sub eax, 1
add edi, 1
cmp ecx, ebp
jae 0x10247a4a
cmp edx, eax
jae 0x10247a4a
movzx ebx, byte [eax - 1]
cmp byte [ebp - 1], bl
je 0x10248838
jmp 0x10247a4a
mov eax, dword [esp + 0x4c]
add ecx, 4
add edx, 4
cmp ecx, eax
jb 0x1024766e
jmp 0x1024820c
mov dword [esp + 8], 0x342
mov edi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
cmp dword [esp + 0x3c], 0x40
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
jbe 0x10249074
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x333
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x2c]
imul ecx, ebx, 0xbfa56300
mov ebx, dword [esp + 0x54]
imul edx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xbfa56300
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x24]
cmovne eax, edx
mov dword [ebx + eax*4], ecx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov edx, dword [ebp - 1]
mov ebx, dword [ebp + 3]
mov dword [esp + 8], 0x333
mov dword [esp + 4], 0x1044c8d4
mov dword [esp + 0x24], edx
mov dword [esp], 0x1044c97c
call edi
mov edx, dword [esp + 0x24]
jmp 0x10246f59
mov dword [esp + 8], 0x342
mov edi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jbe 0x10248fc7
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
imul ecx, eax, 0xcf1bbcdc
imul edx, edx, 0xb7a56463
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x102489bd
mov eax, edx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [ecx + eax*4], edx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov eax, dword [ebp - 2]
mov edx, dword [ebp + 2]
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
jmp 0x10246edc
mov dword [esp + 8], 0x342
mov edi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
cmp dword [esp + 0x3c], 0x40
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
jbe 0x1024901e
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x32e
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x2c]
imul ecx, ebx, 0xbf9b0000
mov ebx, dword [esp + 0x54]
imul edx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xbf9b0000
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x24]
cmovne eax, edx
mov dword [ebx + eax*4], ecx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov edx, dword [ebp - 1]
mov ebx, dword [ebp + 3]
mov dword [esp + 8], 0x32e
mov dword [esp + 4], 0x1044c8d4
mov dword [esp + 0x24], edx
mov dword [esp], 0x1044c97c
call edi
mov edx, dword [esp + 0x24]
jmp 0x102471d1
mov dword [esp + 8], 0x342
mov edi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jbe 0x10248e56
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
imul ecx, eax, 0xcf1bbcdc
imul edx, edx, 0xb7a56463
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10248b5c
mov eax, edx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [ecx + eax*4], edx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov eax, dword [ebp - 2]
mov edx, dword [ebp + 2]
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
jmp 0x10247154
lea esi, [eax + 8]
mov eax, edi
mov ecx, dword [esp + 0x64]
lea edx, [ecx - 1]
cmp eax, edx
jae 0x10248bd2
movzx ecx, word [eax]
cmp word [esi], cx
jne 0x10248bd2
add eax, 2
add esi, 2
mov ecx, dword [esp + 0x64]
cmp eax, ecx
jae 0x10248be7
movzx edx, byte [eax]
cmp byte [esi], dl
sete dl
movzx edx, dl
add eax, edx
sub eax, edi
jmp 0x10248801
lea esi, [eax + 8]
mov eax, edi
mov ecx, dword [esp + 0x64]
lea edx, [ecx - 1]
cmp eax, edx
jae 0x10248c0c
movzx ecx, word [eax]
cmp word [esi], cx
jne 0x10248c0c
add eax, 2
add esi, 2
mov ecx, dword [esp + 0x64]
cmp eax, ecx
jae 0x10248c21
movzx edx, byte [eax]
cmp byte [esi], dl
sete dl
movzx edx, dl
add eax, edx
sub eax, edi
jmp 0x1024877a
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x50]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], eax
mov eax, 4
lea ecx, [ebp + 4]
sub eax, ebx
mov ebx, dword [esp + 0x4c]
add eax, ebp
cmp ecx, ebx
jae 0x10248f03
mov edx, dword [eax]
mov ebx, dword [ebp + 4]
cmp edx, ebx
je 0x10249221
xor ebx, edx
tzcnt ebx, ebx
shr ebx, 3
lea eax, [ebx + 4]
mov edi, ebp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
sub edi, eax
cmp dword [esp + 0x3c], 0x20
ja 0x102491bb
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
imul edx, edx, 0xbf9b0000
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xbf9b0000
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10248cae
mov eax, edx
mov ecx, dword [esp + 0x54]
cmp dword [esp + 0x34], 0x20
mov dword [ecx + eax*4], edi
ja 0x10249155
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
imul edx, edx, 0xb7a56463
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10248cee
mov eax, edx
mov ecx, dword [esp + 0x20]
mov dword [ecx + eax*4], edi
mov eax, dword [esi + 4]
sub eax, dword [esi]
sar eax, 3
cmp eax, dword [esi + 0x1c]
jae 0x10249133
mov eax, dword [esi + 0x20]
cmp eax, 0x20000
ja 0x1024910e
add eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x102490ec
cmp dword [esp + 0x64], ebp
jb 0x102490ca
mov eax, dword [esi + 0xc]
cmp dword [esp + 0x18], ebp
jb 0x10248ead
mov edi, dword [ebp]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x80], edi
mov edi, dword [ebp + 4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x84], edi
mov dword [esp + 0x8c], edx
mov edx, dword [ebp]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x88], ecx
mov dword [eax], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
mov eax, dword [esi + 4]
xor edx, edx
add ebx, 1
cmp dword [esp + 0x24], 2
mov word [eax + 4], dx
mov dword [eax], 1
jbe 0x10248ec2
cmp ebx, 0xffff
ja 0x10248edf
mov word [eax + 6], bx
add eax, 8
mov dword [esi + 4], eax
mov eax, dword [esp + 0x24]
add ebp, eax
cmp dword [esp + 0x44], ebp
jb 0x10247216
mov ebx, dword [esp + 0x68]
mov eax, ebp
mov edi, dword [ebp]
sub eax, ebx
cmp dword [eax], edi
sete dl
test ebx, ebx
setne al
test dl, al
je 0x10247216
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], ebx
jmp 0x10248c38
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
lea eax, [ebx + 0xc]
add esi, 0xc
cmp eax, ecx
jae 0x10248bb9
mov ecx, dword [esi]
mov edx, dword [eax]
cmp ecx, edx
je 0x10249290
xor edx, ecx
tzcnt edx, edx
shr edx, 3
add edx, eax
mov eax, edx
sub eax, edi
jmp 0x10248801
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
lea eax, [ebx + 0xc]
add esi, 0xc
cmp eax, ecx
jae 0x10248bf3
mov ecx, dword [esi]
mov edx, dword [eax]
cmp ecx, edx
je 0x102492d7
xor edx, ecx
tzcnt edx, edx
shr edx, 3
add edx, eax
mov eax, edx
sub eax, edi
jmp 0x1024877a
imul edx, edx, 0xb7a56463
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10248e7e
mov eax, edx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [ecx + eax*4], edx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov eax, dword [ebp - 2]
mov edx, dword [ebp + 2]
jmp 0x10247154
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ebp
mov dword [esp], edi
call fcn.102a7010
jmp 0x10248d75
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esi + 0x24]
test eax, eax
jne 0x10249251
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x10248d9e
mov ebx, ecx
mov edi, dword [esp + 0x64]
lea edx, [edi - 1]
cmp ebx, edx
jae 0x10248f1e
movzx edi, word [ebx]
cmp word [eax], di
jne 0x10248f1e
add ebx, 2
add eax, 2
mov edi, dword [esp + 0x64]
cmp ebx, edi
jae 0x10248f33
movzx edx, byte [ebx]
cmp byte [eax], dl
sete al
movzx eax, al
add ebx, eax
sub ebx, ecx
jmp 0x10248c66
mov ebx, ecx
mov edi, dword [esp + 0x64]
lea edx, [edi - 1]
cmp ebx, edx
jae 0x10248f55
movzx edi, word [ebx]
cmp word [eax], di
jne 0x10248f55
add ebx, 2
add eax, 2
mov edi, dword [esp + 0x64]
cmp ebx, edi
jae 0x10248f6a
movzx edx, byte [ebx]
cmp byte [eax], dl
sete al
movzx eax, al
add ebx, eax
sub ebx, ecx
jmp 0x1024840b
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov edi, dword [esi + 0x24]
test edi, edi
jne 0x102492a7
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x10248543
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ebp
mov dword [esp], edi
call fcn.102a7010
jmp 0x1024851a
imul edx, edx, 0xb7a56463
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10248fef
mov eax, edx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [ecx + eax*4], edx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov eax, dword [ebp - 2]
mov edx, dword [ebp + 2]
jmp 0x10246edc
imul edx, eax, 0xcf1bbcdc
imul ecx, ebx, 0xbf9b0000
mov ebx, dword [esp + 0x54]
add ecx, edx
mov edx, 0xbf9b0000
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x24]
cmovne eax, edx
mov dword [ebx + eax*4], ecx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov edx, dword [ebp - 1]
mov ebx, dword [ebp + 3]
jmp 0x102471d1
imul edx, eax, 0xcf1bbcdc
imul ecx, ebx, 0xbfa56300
mov ebx, dword [esp + 0x54]
add ecx, edx
mov edx, 0xbfa56300
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x24]
cmovne eax, edx
mov dword [ebx + eax*4], ecx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov edx, dword [ebp - 1]
mov ebx, dword [ebp + 3]
jmp 0x10246f59
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10248d2a
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10248d20
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esi + 0x20]
jmp 0x10248d14
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10248d06
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
mov dword [esp + 0x38], ecx
call ecx
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
jbe 0x10248cc6
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
jmp 0x10248cc6
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
mov dword [esp + 0x38], ecx
call ecx
cmp dword [esp + 0x3c], 0x40
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
jbe 0x10248c86
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x32e
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
jmp 0x10248c86
mov edi, dword [esp + 0x4c]
lea ebx, [ebp + 8]
add eax, 4
cmp ebx, edi
jae 0x10248f05
mov edx, dword [eax]
mov edi, dword [ebx]
cmp edx, edi
je 0x10249273
mov eax, edx
xor eax, edi
tzcnt eax, eax
shr eax, 3
add eax, ebx
sub eax, ecx
mov ebx, eax
jmp 0x10248c66
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10248eea
mov edi, dword [esp + 0x4c]
add ebx, 4
add eax, 4
cmp ebx, edi
jb 0x10249233
jmp 0x10248f05
mov ecx, dword [esp + 0x4c]
add eax, 4
add esi, 4
cmp eax, ecx
jb 0x10248e00
jmp 0x10248bb9
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10248f99
mov ebp, ebx
jmp 0x10247d3c
mov ebp, ebx
jmp 0x10247a4c
mov ecx, dword [esp + 0x4c]
add eax, 4
add esi, 4
cmp eax, ecx
jb 0x10248e36
jmp 0x10248bf3
mov edi, dword [esp + 0x4c]
lea ebx, [ebp + 8]
add eax, 4
cmp ebx, edi
jae 0x10248f3c
mov edx, dword [eax]
mov edi, dword [ebx]
cmp edx, edi
je 0x102493ee
mov eax, edx
xor eax, edi
tzcnt eax, eax
shr eax, 3
add eax, ebx
sub eax, ecx
mov ebx, eax
jmp 0x1024840b
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
mov dword [esp + 0x38], ecx
call ecx
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
jbe 0x1024846b
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
jmp 0x1024846b
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
mov dword [esp + 0x38], ecx
call ecx
cmp dword [esp + 0x3c], 0x40
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
jbe 0x1024842b
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x333
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
jmp 0x1024842b
mov edi, dword [esp + 0x4c]
add ebx, 4
add eax, 4
cmp ebx, edi
jb 0x10249300
jmp 0x10248f3c
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102484cf
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102484c5
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esi + 0x20]
jmp 0x102484b9
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102484ab
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], ebx
jmp 0x10246fa2
push ebp
mov ebp, ecx
push edi
push esi
push ebx
sub esp, 0x9c
mov ebx, dword [eax + 0x5c]
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [eax + 0xc0]
mov ecx, dword [eax + 0xb8]
mov dword [esp + 0x5c], edx
mov edx, 1
mov dword [esp + 0x34], ebx
mov ebx, dword [eax + 0x64]
shl edx, cl
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x50], ebx
mov ebx, dword [eax + 0xbc]
mov dword [esp + 0x44], ebx
mov ebx, dword [eax + 4]
mov esi, ebx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0xb0]
sub ebx, esi
add ebx, edi
mov esi, ebx
sub ebx, edx
sub esi, ecx
cmp edx, esi
mov esi, dword [ebp]
cmovae ebx, ecx
mov dword [esp + 0x60], esi
mov esi, dword [ebp + 4]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x68], esi
add ebx, edi
mov edi, dword [eax + 0x18]
mov dword [esp + 0x64], ebx
sub ebx, 8
mov dword [esp + 0x40], ebx
test edi, edi
je 0x10255960
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
lea eax, [ebx + ecx]
cmp dword [esp + 0xb0], eax
mov dword [esp + 0x6c], eax
sete al
movzx eax, al
add eax, dword [esp + 0xb0]
mov ebp, eax
sub eax, ebx
mov ebx, esi
sub eax, ecx
mov dword [esp + 0x7c], 0
cmp eax, ebx
jae 0x102553b0
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x68], 0
mov ebx, dword [esp + 0x60]
cmp eax, ebx
jae 0x10255938
mov dword [esp + 0x60], 0
mov edi, 1
mov eax, edi
mov dword [esp + 0x74], ebx
mov byte [esp + 0x7b], al
lea eax, [ebp + 0x100]
lea ebx, [ebp + 1]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x40], ebx
jb 0x10256320
cmp dword [esp + 0x34], 0x20
ja 0x102558e0
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
mov edx, dword [esp + 0x34]
mov eax, 0x40
imul ecx, edi, 0xb7a56463
mov dword [esp + 0x28], 1
sub eax, edx
mov dword [esp + 0x3c], eax
imul eax, esi, 0xcf1bbcdc
add ecx, eax
mov eax, 0xb7a56463
mul esi
mov esi, dword [esp + 0x60]
add edx, ecx
movzx ecx, byte [esp + 0x3c]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, eax
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + edx*4]
mov eax, dword [esp + 0x18]
add eax, edi
test esi, esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], eax
mov eax, 1
setne byte [esp + 0x58]
sub eax, esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x4c], eax
mov eax, 0x20
sub eax, esi
mov esi, edx
mov dword [esp + 0x48], eax
jmp 0x102554a3
add dword [esp + 0x28], 1
mov edi, dword [esp + 0x28]
add eax, 0x100
mov dword [esp + 0x38], eax
lea eax, [ebx + edi]
cmp dword [esp + 0x40], eax
jb 0x10255596
mov ebp, ebx
mov ebx, eax
cmp dword [esp + 0x44], 0x20
ja 0x102555e0
mov edi, dword [ebp]
imul eax, edi, 0x9e3779b1
movzx ecx, byte [esp + 0x48]
mov edi, dword [esp + 0x50]
shr eax, cl
mov ecx, dword [esp + 0x18]
lea eax, [edi + eax*4]
mov edi, ebp
sub edi, ecx
mov edx, dword [eax]
mov dword [eax], edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov dword [eax + esi*4], edi
mov eax, dword [esp + 0x4c]
mov esi, dword [ebp + 1]
cmp dword [ebp + eax], esi
jne 0x102554f4
cmp byte [esp + 0x58], 0
jne 0x10255680
cmp dword [esp + 0x34], 0x20
ja 0x10255628
mov esi, dword [ebx]
mov ecx, dword [ebx + 4]
imul eax, esi, 0xcf1bbcdc
imul ecx, ecx, 0xb7a56463
add ecx, eax
mov eax, 0xb7a56463
mul esi
add edx, ecx
movzx ecx, byte [esp + 0x3c]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, dword [esp + 0x20]
mov esi, eax
cmp dword [esp + 0x24], edx
jae 0x1025554e
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
xor eax, dword [ecx]
xor edx, dword [ecx + 4]
or eax, edx
je 0x10255a88
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x20], eax
add eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x24], eax
jae 0x1025557a
add eax, edx
mov edx, dword [eax]
cmp dword [ebp], edx
je 0x10255af8
mov eax, dword [esp + 0x38]
cmp ebx, eax
jae 0x10255480
mov eax, dword [esp + 0x28]
add eax, ebx
cmp dword [esp + 0x40], eax
jae 0x1025549f
mov ebx, dword [esp + 0x74]
movzx edi, byte [esp + 0x7b]
mov eax, edi
test al, al
je 0x10255948
cmp byte [esp + 0x58], 0
je 0x10255948
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x60]
mov dword [eax], esi
mov esi, dword [esp + 0x68]
test esi, esi
cmovne ebx, esi
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0xb0]
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call dword [sym.imp.msvcrt.dll__assert]
mov edi, dword [ebp]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044cb93
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102554b1
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call dword [sym.imp.msvcrt.dll__assert]
cmp dword [esp + 0x34], 0x40
mov esi, dword [ebx]
mov ecx, dword [ebx + 4]
jbe 0x10255504
mov dword [esp + 0x54], ecx
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call dword [sym.imp.msvcrt.dll__assert]
mov ecx, dword [esp + 0x54]
jmp 0x10255504
mov ebx, dword [esp + 0x60]
mov eax, ebp
lea esi, [ebp + 5]
mov dword [esp + 0x4c], edi
sub eax, ebx
lea ebx, [eax + 5]
mov eax, dword [esp + 0x64]
sub eax, 3
mov dword [esp + 0x38], eax
cmp esi, eax
jae 0x10255998
mov eax, dword [ebx]
mov edx, dword [ebp + 5]
cmp eax, edx
je 0x10255d0a
xor eax, edx
tzcnt eax, eax
shr eax, 3
mov dword [esp + 0x2c], eax
add ebp, 1
lea edi, [eax + 4]
mov ebx, dword [esp + 0x5c]
mov eax, ebp
sub eax, dword [esp + 0xb0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x64]
sub eax, 0x20
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
cmp eax, dword [ebx + 0x1c]
jae 0x10255c09
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x20]
cmp eax, 0x20000
ja 0x10255be0
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x28]
add eax, dword [ebx + 8]
add edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x10255bbe
cmp dword [esp + 0x64], ebp
jb 0x10255b9c
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0xc]
cmp dword [esp + 0x20], ebp
jb 0x10255a30
mov ebx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb0]
mov ebx, dword [ebx]
mov esi, dword [esi + 4]
mov ecx, dword [ecx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x80], ebx
mov dword [eax], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
cmp ebx, 0x10
ja 0x10255c2b
add dword [eax + 0xc], ebx
mov eax, dword [eax + 4]
movzx ebx, word [esp + 0x28]
mov dword [eax], 1
mov word [eax + 4], bx
mov ebx, dword [esp + 0x2c]
add ebx, 1
cmp edi, 2
jbe 0x102559de
cmp ebx, 0xffff
ja 0x102559fb
mov word [eax + 6], bx
add eax, 8
mov ebx, dword [esp + 0x5c]
add ebp, edi
mov dword [esp + 0xb0], ebp
mov dword [ebx + 4], eax
cmp dword [esp + 0x40], ebp
jb 0x102553d3
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x4c]
lea eax, [ebp - 2]
add edi, 2
sub eax, ecx
cmp dword [esp + 0x34], 0x20
mov dword [esp + 0x28], edi
lea ebx, [ecx + edi]
mov esi, eax
ja 0x10256368
imul eax, dword [ebx], 0xcf1bbcdc
imul ecx, dword [ebx + 4], 0xb7a56463
add ecx, eax
mov eax, 0xb7a56463
mul dword [ebx]
add edx, ecx
movzx ecx, byte [esp + 0x3c]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10255833
mov eax, edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 2]
mov dword [ecx + eax*4], edi
mov eax, dword [ebp - 2]
imul edx, edx, 0xb7a56463
mov edi, dword [esp + 0x1c]
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x3c]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov dword [edi + eax*4], esi
mov esi, dword [esp + 0x18]
lea eax, [ebp - 1]
sub eax, esi
cmp dword [esp + 0x44], 0x20
mov esi, eax
ja 0x102564ec
imul eax, dword [ebx], 0x9e3779b1
movzx ecx, byte [esp + 0x48]
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
shr eax, cl
mov dword [ebx + eax*4], edi
mov ebx, dword [ebp - 1]
imul eax, ebx, 0x9e3779b1
movzx ecx, byte [esp + 0x48]
mov ebx, dword [esp + 0x50]
shr eax, cl
mov dword [ebx + eax*4], esi
mov ebx, dword [esp + 0x68]
mov eax, ebp
mov esi, dword [ebp]
sub eax, ebx
cmp dword [eax], esi
jne 0x102558ca
test ebx, ebx
jne 0x102565b6
mov dword [esp + 0xb0], ebp
jmp 0x102553d3
mov eax, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
mov dword [esp + 0x20], eax
call eax
cmp dword [esp + 0x34], 0x40
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
jbe 0x102553fb
mov dword [esp + 8], 0x338
mov eax, dword [esp + 0x20]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call eax
jmp 0x102553fb
xor edi, edi
xor ebx, ebx
jmp 0x102553c9
mov esi, dword [esp + 0x60]
test esi, esi
je 0x102559d1
mov ebx, dword [esp + 0x7c]
jmp 0x102555b4
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
add eax, ebx
cmp dword [esp + 0xb0], eax
mov dword [esp + 0x6c], eax
sete al
movzx eax, al
add eax, dword [esp + 0xb0]
mov ebp, eax
sub eax, ebx
mov ebx, esi
sub eax, ecx
cmp eax, edx
cmova eax, edx
jmp 0x10255398
mov eax, esi
mov edi, dword [esp + 0x64]
lea edx, [edi - 1]
cmp eax, edx
jae 0x102559b1
movzx edi, word [eax]
cmp word [ebx], di
je 0x1025620b
mov edi, dword [esp + 0x64]
cmp eax, edi
jae 0x102559c6
movzx edx, byte [eax]
cmp byte [ebx], dl
sete dl
movzx edx, dl
add eax, edx
sub eax, esi
mov dword [esp + 0x2c], eax
jmp 0x102556bf
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x7c]
jmp 0x102555b4
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x1025629c
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x102557c5
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0xb0]
mov ecx, ebp
mov dword [esp], ebx
call fcn.102a7010
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x28]
add dword [ebx + 0xc], eax
cmp eax, 0xffff
jbe 0x1025626a
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x1025627a
mov ebx, dword [esp + 0x5c]
mov eax, dword [ebx + 4]
mov dword [ebx + 0x24], 1
mov edx, eax
sub edx, dword [ebx]
sar edx, 3
mov dword [ebx + 0x28], edx
jmp 0x1025579a
mov eax, dword [esp + 0x64]
mov edx, esi
lea esi, [ebp + 8]
mov dword [esp + 0x4c], edi
sub eax, 3
mov dword [esp + 0x38], eax
cmp esi, eax
jae 0x10255d3e
mov eax, dword [ecx + 8]
mov ecx, dword [ebp + 8]
cmp eax, ecx
jne 0x102561d5
mov eax, dword [esp + 0x30]
lea ecx, [ebp + 0xc]
lea edi, [eax + 0xc]
mov eax, dword [esp + 0x38]
cmp ecx, eax
jae 0x10255d43
mov eax, dword [edi]
mov dword [esp + 0x20], eax
mov eax, dword [ecx]
cmp dword [esp + 0x20], eax
je 0x10256339
mov edi, dword [esp + 0x20]
xor edi, eax
xor eax, eax
tzcnt eax, edi
shr eax, 3
add ecx, eax
sub ecx, esi
jmp 0x10255d68
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x20]
mov edx, esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x64]
sub eax, 3
mov dword [esp + 0x38], eax
cmp dword [esp + 0x24], edi
jae 0x10255b2f
mov eax, dword [esp + 0x30]
mov edi, dword [ebx + 4]
mov esi, dword [ebx]
xor edi, dword [eax + 4]
xor esi, dword [eax]
mov eax, edi
or eax, esi
je 0x10256440
mov eax, dword [esp + 0x38]
lea edi, [ebp + 4]
cmp edi, eax
mov eax, dword [esp + 0x20]
jae 0x10256132
mov eax, dword [eax + 4]
mov ecx, dword [ebp + 4]
cmp eax, ecx
jne 0x102561fb
mov esi, dword [esp + 0x20]
lea ecx, [ebp + 8]
lea eax, [esi + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
cmp ecx, eax
jae 0x1025613b
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [ecx]
cmp dword [esp + 0x30], eax
je 0x102564cf
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x30]
xor esi, eax
xor eax, eax
tzcnt eax, esi
shr eax, 3
add ecx, eax
sub ecx, edi
jmp 0x10256164
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10255724
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1025571a
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x20]
jmp 0x10255704
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102556f2
mov edx, dword [eax + 0xc]
mov eax, edx
sub eax, dword [esp + 0xb0]
add eax, 0xf
cmp eax, 0x1e
jbe 0x10256216
mov eax, dword [esp + 0xb0]
mov ebx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x8c], eax
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov dword [edx + 0x10], ebx
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
cmp eax, 0x20
jle 0x10255a45
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x54], edi
lea ebx, [edx + eax]
lea eax, [edx + 0x20]
mov dword [esp + 0x30], ebp
mov ebp, ebx
lea edx, [esi + 0x20]
lea esi, [esi]
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x80], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ecx
cmp eax, ebp
jb 0x10255ca8
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x54]
jmp 0x10255a45
mov edi, dword [esp + 0x38]
lea eax, [ebp + 9]
add ebx, 4
cmp eax, edi
jae 0x1025599a
mov edx, dword [ebx]
mov ecx, dword [eax]
cmp edx, ecx
je 0x10256302
xor edx, ecx
tzcnt edx, edx
shr edx, 3
add eax, edx
sub eax, esi
mov dword [esp + 0x2c], eax
jmp 0x102556bf
lea edi, [ecx + 8]
mov ecx, esi
mov eax, dword [esp + 0x64]
sub eax, 1
cmp ecx, eax
jae 0x10255d5a
movzx eax, word [ecx]
cmp word [edi], ax
je 0x10256350
mov eax, dword [esp + 0x64]
cmp ecx, eax
jb 0x102561c3
sub ecx, esi
mov esi, dword [esp + 0x30]
mov eax, ebp
lea edi, [ecx + 8]
sub eax, esi
mov dword [esp + 0x2c], eax
cmp dword [esp + 0xb0], ebp
jae 0x10255dbe
cmp dword [esp + 0x6c], esi
jae 0x10255dbe
mov eax, esi
mov dword [esp + 0x20], edx
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0xb0]
jmp 0x10255db1
sub ebp, 1
sub eax, 1
add edi, 1
cmp ecx, ebp
jae 0x10255dba
cmp esi, eax
jae 0x10255dba
movzx edx, byte [eax - 1]
cmp byte [ebp - 1], dl
je 0x10255da0
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x28], 3
ja 0x10255dd2
mov eax, dword [esp + 0x18]
sub ebx, eax
mov eax, dword [esp + 0x1c]
mov dword [eax + edx*4], ebx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x10255f9c
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x5c]
add eax, 3
mov dword [esp + 0x30], eax
mov eax, ebp
sub eax, dword [esp + 0xb0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x64]
sub eax, 0x20
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
cmp eax, dword [ebx + 0x1c]
jae 0x1025602b
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x20]
cmp eax, 0x20000
ja 0x10256002
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x28]
add eax, dword [ebx + 8]
add edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x10255fe0
cmp dword [esp + 0x64], ebp
jb 0x10255fbe
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0xc]
cmp dword [esp + 0x20], ebp
jb 0x10255f00
mov ebx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb0]
mov ebx, dword [ebx]
mov esi, dword [esi + 4]
mov ecx, dword [ecx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x80], ebx
mov dword [eax], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
cmp ebx, 0x10
ja 0x1025604d
add dword [eax + 0xc], ebx
mov eax, dword [eax + 4]
movzx ebx, word [esp + 0x28]
mov word [eax + 4], bx
mov ebx, dword [esp + 0x30]
mov dword [eax], ebx
lea ebx, [edi - 3]
cmp edi, 2
jbe 0x10255f53
cmp ebx, 0xffff
ja 0x10255f70
mov word [eax + 6], bx
mov ebx, dword [esp + 0x60]
add eax, 8
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x60], ebx
jmp 0x102557cc
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0xb0]
mov ecx, ebp
mov dword [esp], ebx
call fcn.102a7010
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x28]
add dword [ebx + 0xc], eax
cmp eax, 0xffff
jbe 0x10256272
mov edx, dword [ebx + 0x24]
test edx, edx
jne 0x102562e0
mov ebx, dword [esp + 0x5c]
mov eax, dword [ebx + 4]
mov dword [ebx + 0x24], 1
mov edx, eax
sub edx, dword [ebx]
sar edx, 3
mov dword [ebx + 0x28], edx
jmp 0x10255ebe
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x102562be
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x10255ee1
mov dword [esp + 8], 0x10f
mov dword [esp + 4], str.zstd_lib_compress_zstd_double_fast.c
mov dword [esp], 0x1044cadd
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10255dde
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10255e48
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10255e3e
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x20]
jmp 0x10255e28
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10255e16
mov edx, dword [eax + 0xc]
mov eax, edx
sub eax, dword [esp + 0xb0]
add eax, 0xf
cmp eax, 0x1e
jbe 0x10256240
mov eax, dword [esp + 0xb0]
mov ebx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x8c], eax
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov dword [edx + 0x10], ebx
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
cmp eax, 0x20
jle 0x10255f15
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x58], edi
lea ebx, [edx + eax]
lea eax, [edx + 0x20]
mov dword [esp + 0x54], ebp
mov ebp, ebx
lea edx, [esi + 0x20]
lea esi, [esi]
nop
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x80], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ecx
cmp eax, ebp
jb 0x102560d0
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
jmp 0x10255f15
add eax, 4
mov ecx, edi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x64]
sub eax, 1
cmp ecx, eax
jae 0x10256156
mov eax, dword [esp + 0x2c]
movzx esi, word [ecx]
cmp word [eax], si
je 0x1025635b
mov eax, dword [esp + 0x64]
cmp ecx, eax
jb 0x102561e5
sub ecx, edi
mov esi, dword [esp + 0x20]
mov eax, ebp
lea edi, [ecx + 4]
sub eax, esi
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x6c], esi
jae 0x10255dbe
cmp dword [esp + 0xb0], ebp
jae 0x10255dbe
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x30], edx
jmp 0x102561b1
sub ebp, 1
sub esi, 1
add edi, 1
cmp eax, ebp
jae 0x102561ba
cmp ecx, esi
jae 0x102561ba
movzx edx, byte [esi - 1]
cmp byte [ebp - 1], dl
je 0x102561a0
mov edx, dword [esp + 0x30]
jmp 0x10255dbe
movzx eax, byte [ecx]
cmp byte [edi], al
sete al
movzx eax, al
add ecx, eax
jmp 0x10255d66
xor eax, ecx
xor ecx, ecx
tzcnt ecx, eax
shr ecx, 3
jmp 0x10255d68
mov esi, dword [esp + 0x2c]
movzx eax, byte [ecx]
cmp byte [esi], al
sete al
movzx eax, al
add ecx, eax
jmp 0x10256162
xor eax, ecx
xor ecx, ecx
tzcnt ecx, eax
shr ecx, 3
jmp 0x10256164
add eax, 2
add ebx, 2
jmp 0x102559b1
mov dword [esp + 0x30], edx
mov dword [esp + 8], 0xe9
mov dword [esp + 4], 0x1044c910
mov dword [esp], 0x1044c93c
call dword [sym.imp.msvcrt.dll__assert]
mov edx, dword [esp + 0x30]
jmp 0x10255c43
mov dword [esp + 0x54], edx
mov dword [esp + 8], 0xe9
mov dword [esp + 4], 0x1044c910
mov dword [esp], 0x1044c93c
call dword [sym.imp.msvcrt.dll__assert]
mov edx, dword [esp + 0x54]
jmp 0x10256065
mov eax, dword [ebx + 4]
jmp 0x1025579a
mov eax, dword [ebx + 4]
jmp 0x10255ebe
mov dword [esp + 8], 0x2b2
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10255a66
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10255a0a
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10255f7f
mov dword [esp + 8], 0x2b2
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10255f36
mov edi, dword [esp + 0x38]
add eax, 4
add ebx, 4
cmp eax, edi
jb 0x10255d1c
jmp 0x1025599a
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x74]
movzx edi, byte [esp + 0x7b]
test ebp, ebp
setne byte [esp + 0x58]
jmp 0x1025559f
mov eax, dword [esp + 0x38]
add ecx, 4
add edi, 4
cmp ecx, eax
jb 0x10255ac8
jmp 0x10255d43
add ecx, 2
add edi, 2
jmp 0x10255d5a
add dword [esp + 0x2c], 2
add ecx, 2
jmp 0x10256156
mov dword [esp + 8], 0x342
mov edi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jbe 0x1025678b
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
imul ecx, eax, 0xcf1bbcdc
imul edx, edx, 0xb7a56463
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x3c]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x102563e8
mov eax, edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov dword [ecx + eax*4], edx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov eax, dword [ebp - 2]
mov edx, dword [ebp + 2]
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
jmp 0x10255840
mov eax, dword [esp + 0x38]
lea edi, [ebx + 8]
cmp edi, eax
mov eax, dword [esp + 0x30]
jae 0x10256578
mov eax, dword [eax + 8]
mov ecx, dword [ebx + 8]
cmp eax, ecx
je 0x10256756
xor eax, ecx
tzcnt eax, eax
shr eax, 3
mov esi, dword [esp + 0x30]
lea edi, [eax + 8]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x6c], esi
jae 0x10256886
mov ebp, ebx
cmp dword [esp + 0xb0], ebx
jae 0x10256886
mov eax, esi
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0xb0]
jmp 0x102564c1
sub ebp, 1
sub eax, 1
add edi, 1
cmp esi, ebp
jae 0x10255dba
cmp ecx, eax
jae 0x10255dba
movzx edx, byte [eax - 1]
cmp byte [ebp - 1], dl
je 0x102564a8
jmp 0x10255dba
mov eax, dword [esp + 0x38]
add ecx, 4
add dword [esp + 0x2c], 4
cmp ecx, eax
jb 0x10255b6a
mov dword [esp + 0x20], esi
jmp 0x1025613b
mov edi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov ebx, dword [ebx]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044c8d4
imul ebx, ebx, 0x9e3779b1
mov dword [esp], 0x1044cb93
call edi
movzx ecx, byte [esp + 0x48]
mov eax, dword [esp + 0x50]
shr ebx, cl
mov ecx, dword [esp + 0x28]
mov dword [eax + ebx*4], ecx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov ebx, dword [ebp - 1]
mov dword [esp + 8], 0x324
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044cb93
call edi
jmp 0x1025589f
lea esi, [eax + 8]
mov ebp, edi
mov eax, dword [esp + 0x64]
sub eax, 1
cmp ebp, eax
jae 0x10256597
movzx eax, word [ebp]
cmp word [esi], ax
jne 0x10256597
add ebp, 2
add esi, 2
mov eax, dword [esp + 0x64]
cmp ebp, eax
jae 0x102565ad
movzx eax, byte [ebp]
cmp byte [esi], al
sete al
movzx eax, al
add ebp, eax
mov eax, ebp
sub eax, edi
jmp 0x1025646a
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], eax
mov eax, 4
lea ecx, [ebp + 4]
sub eax, ebx
mov ebx, dword [esp + 0x38]
add eax, ebp
cmp ecx, ebx
jae 0x10256838
mov edx, dword [eax]
mov ebx, dword [ebp + 4]
cmp edx, ebx
je 0x102569ce
xor ebx, edx
tzcnt ebx, ebx
shr ebx, 3
lea eax, [ebx + 4]
mov edi, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
sub edi, eax
cmp dword [esp + 0x44], 0x20
ja 0x1025697e
mov eax, dword [ebp]
imul eax, eax, 0x9e3779b1
movzx ecx, byte [esp + 0x48]
shr eax, cl
mov ecx, dword [esp + 0x50]
cmp dword [esp + 0x34], 0x20
mov dword [ecx + eax*4], edi
ja 0x10256918
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
imul edx, edx, 0xb7a56463
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x3c]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x1025665e
mov eax, edx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + eax*4], edi
mov eax, dword [esi + 4]
sub eax, dword [esi]
sar eax, 3
cmp eax, dword [esi + 0x1c]
jae 0x102568f6
mov eax, dword [esi + 0x20]
cmp eax, 0x20000
ja 0x102568d1
add eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x102568af
cmp dword [esp + 0x64], ebp
jb 0x1025688d
mov eax, dword [esi + 0xc]
cmp dword [esp + 0x20], ebp
jb 0x102567e2
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x8c], edx
mov edx, dword [ebp]
mov dword [esp + 0x80], edi
mov edi, dword [ebp + 4]
mov dword [eax], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], ecx
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esi + 4]
xor edx, edx
add ebx, 1
cmp dword [esp + 0x28], 2
mov word [eax + 4], dx
mov dword [eax], 1
jbe 0x102567f7
cmp ebx, 0xffff
ja 0x10256814
mov word [eax + 6], bx
add eax, 8
mov dword [esi + 4], eax
mov eax, dword [esp + 0x28]
add ebp, eax
cmp dword [esp + 0x40], ebp
jb 0x102558ca
mov ebx, dword [esp + 0x68]
mov eax, ebp
mov edi, dword [ebp]
sub eax, ebx
cmp dword [eax], edi
sete dl
test ebx, ebx
setne al
test dl, al
je 0x102558ca
mov eax, dword [esp + 0x60]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], eax
jmp 0x102565c6
mov eax, dword [esp + 0x30]
lea ebp, [ebx + 0xc]
lea esi, [eax + 0xc]
mov eax, dword [esp + 0x38]
cmp ebp, eax
jae 0x1025657d
mov ecx, dword [esi]
mov eax, dword [ebp]
cmp ecx, eax
je 0x1025686f
xor eax, ecx
tzcnt eax, eax
shr eax, 3
add eax, ebp
sub eax, edi
jmp 0x1025646a
imul edx, edx, 0xb7a56463
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x3c]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x102567b3
mov eax, edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + eax*4], edx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov eax, dword [ebp - 2]
mov edx, dword [ebp + 2]
jmp 0x10255840
mov edi, dword [esp + 0x20]
mov ecx, ebp
mov edx, ebp
mov dword [esp], edi
call fcn.102a7010
jmp 0x102566e5
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esi + 0x24]
test eax, eax
jne 0x102569fe
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x1025670e
mov ebx, ecx
mov edi, dword [esp + 0x64]
lea edx, [edi - 1]
cmp ebx, edx
jae 0x10256853
movzx edi, word [ebx]
cmp word [eax], di
jne 0x10256853
add ebx, 2
add eax, 2
mov edi, dword [esp + 0x64]
cmp ebx, edi
jae 0x10256868
movzx edx, byte [ebx]
cmp byte [eax], dl
sete al
movzx eax, al
add ebx, eax
sub ebx, ecx
jmp 0x102565f4
mov eax, dword [esp + 0x38]
add ebp, 4
add esi, 4
cmp ebp, eax
jb 0x1025676c
jmp 0x1025657d
mov ebp, ebx
jmp 0x10255dbe
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1025669a
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10256690
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esi + 0x20]
jmp 0x10256684
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10256676
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
mov dword [esp + 0x4c], ecx
call ecx
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
jbe 0x10256636
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
jmp 0x10256636
mov edx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp + 0x30], edx
mov dword [esp], 0x1044c970
call edx
mov eax, dword [ebp]
mov edx, dword [esp + 0x30]
mov dword [esp], 0x1044cb93
mov dword [esp + 8], 0x324
mov dword [esp + 0x2c], eax
mov dword [esp + 4], 0x1044c8d4
call edx
mov eax, dword [esp + 0x2c]
jmp 0x10256611
mov edi, dword [esp + 0x38]
lea ebx, [ebp + 8]
add eax, 4
cmp ebx, edi
jae 0x1025683a
mov edx, dword [eax]
mov edi, dword [ebx]
cmp edx, edi
je 0x10256a20
mov eax, edx
xor eax, edi
tzcnt eax, eax
shr eax, 3
add eax, ebx
sub eax, ecx
mov ebx, eax
jmp 0x102565f4
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1025681f
mov edi, dword [esp + 0x38]
add ebx, 4
add eax, 4
cmp ebx, edi
jb 0x102569e0
jmp 0x1025683a
push ebp
mov ebp, ecx
push edi
push esi
push ebx
sub esp, 0x9c
mov ebx, dword [eax + 0x5c]
mov ecx, dword [eax + 0xb8]
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x5c], edx
mov edx, 1
mov dword [esp + 0x20], ebx
mov ebx, dword [eax + 0xc0]
shl edx, cl
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x34], ebx
mov ebx, dword [eax + 0x64]
mov dword [esp + 0x50], ebx
mov ebx, dword [eax + 0xbc]
mov dword [esp + 0x3c], ebx
mov ebx, dword [eax + 4]
mov eax, dword [eax + 0x18]
mov esi, ebx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0xb0]
sub ebx, esi
add ebx, edi
mov esi, ebx
sub ebx, edx
sub esi, ecx
cmp edx, esi
cmovae ebx, ecx
add edi, dword [esp + 0xb0]
mov dword [esp + 0x64], edi
mov dword [esp + 0x28], ebx
lea ebx, [edi - 8]
mov dword [esp + 0x44], ebx
mov ebx, dword [ebp + 4]
mov dword [esp + 0x68], ebx
mov ebx, dword [ebp]
mov dword [esp + 0x60], ebx
test eax, eax
je 0x10257148
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
lea eax, [ebx + ecx]
cmp dword [esp + 0xb0], eax
mov dword [esp + 0x6c], eax
sete al
movzx eax, al
add eax, dword [esp + 0xb0]
mov esi, eax
sub eax, ebx
sub eax, ecx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x7c], 0
cmp eax, ebx
jae 0x10256b1c
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x68], 0
mov ebx, dword [esp + 0x60]
cmp eax, ebx
jae 0x10257120
mov dword [esp + 0x60], 0
mov edi, 1
mov eax, edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x77], al
mov dword [esp + 0x78], ebp
mov ebp, esi
lea eax, [ebp + 0x100]
lea ebx, [ebp + 1]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x44], ebx
jb 0x10257ac0
cmp dword [esp + 0x34], 0x20
ja 0x102570c0
mov edi, dword [ebp]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x34]
mov esi, 0x40
imul ecx, ecx, 0xb7a56463
mov dword [esp + 0x2c], 1
mov eax, esi
sub eax, edx
mov dword [esp + 0x40], eax
imul eax, edi, 0xcf1bbcdc
add ecx, eax
mov eax, 0xb7a56463
mul edi
mov edi, dword [esp + 0x20]
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, dword [esp + 0x60]
mov edi, dword [edi + eax*4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], edi
add eax, edi
test edx, edx
mov dword [esp + 0x30], eax
mov eax, 1
setne byte [esp + 0x58]
sub eax, edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
sub esi, eax
mov dword [esp + 0x48], esi
jmp 0x10256c13
add dword [esp + 0x2c], 1
mov edi, dword [esp + 0x2c]
add eax, 0x100
mov dword [esp + 0x38], eax
lea eax, [ebx + edi]
cmp dword [esp + 0x44], eax
jb 0x10256d28
mov ebp, ebx
mov ebx, eax
cmp dword [esp + 0x3c], 0x20
ja 0x10256d78
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
imul eax, esi, 0xcf1bbcdc
imul ecx, edi, 0xbb000000
mov edi, ebp
add ecx, eax
mov eax, 0xbb000000
mul esi
mov esi, dword [esp + 0x50]
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x1c]
cmovne eax, edx
mov edx, dword [esp + 0x18]
sub edi, ecx
shl eax, 2
add eax, esi
mov esi, dword [eax]
mov dword [eax], edi
mov eax, dword [esp + 0x20]
mov dword [eax + edx*4], edi
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebp + 1]
cmp dword [ebp + eax], ecx
jne 0x10256c83
cmp byte [esp + 0x58], 0
jne 0x10256e30
cmp dword [esp + 0x34], 0x20
ja 0x10256dd0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
imul edx, eax, 0xcf1bbcdc
imul ecx, ecx, 0xb7a56463
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10256cbb
mov eax, edx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x28], edx
jae 0x10256ce0
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
xor eax, dword [ecx]
xor edx, dword [ecx + 4]
or eax, edx
je 0x10257268
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x24], eax
add eax, edx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x28], esi
jae 0x10256d0c
add esi, edx
mov eax, dword [esi]
cmp dword [ebp], eax
je 0x102572c8
mov eax, dword [esp + 0x38]
cmp ebx, eax
jae 0x10256bf0
mov eax, dword [esp + 0x2c]
add eax, ebx
cmp dword [esp + 0x44], eax
jae 0x10256c0f
mov ebx, dword [esp + 0x70]
movzx edi, byte [esp + 0x77]
mov ebp, dword [esp + 0x78]
mov eax, edi
test al, al
je 0x10257130
cmp byte [esp + 0x58], 0
je 0x10257130
mov eax, dword [esp + 0x60]
mov dword [ebp], eax
mov eax, dword [esp + 0x68]
test eax, eax
cmovne ebx, eax
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0xb0]
mov dword [ebp + 4], ebx
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call dword [sym.imp.msvcrt.dll__assert]
cmp dword [esp + 0x3c], 0x40
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
jbe 0x10256c24
mov dword [esp + 8], 0x329
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10256c24
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call dword [sym.imp.msvcrt.dll__assert]
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
jbe 0x10256c93
mov dword [esp + 0x54], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call dword [sym.imp.msvcrt.dll__assert]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x18]
jmp 0x10256c93
mov ebx, dword [esp + 0x60]
mov eax, ebp
lea esi, [ebp + 5]
mov dword [esp + 0x54], edi
sub eax, ebx
lea edx, [eax + 5]
mov eax, dword [esp + 0x64]
sub eax, 3
mov dword [esp + 0x4c], eax
cmp esi, eax
jae 0x10257180
mov eax, dword [edx]
mov ecx, dword [ebp + 5]
cmp eax, ecx
je 0x102574c2
xor eax, ecx
tzcnt eax, eax
shr eax, 3
mov dword [esp + 0x2c], eax
add ebp, 1
lea edi, [eax + 4]
mov ebx, dword [esp + 0x5c]
mov eax, ebp
sub eax, dword [esp + 0xb0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
sub eax, 0x20
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
cmp eax, dword [ebx + 0x1c]
jae 0x102573bd
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x20]
cmp eax, 0x20000
ja 0x10257394
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x24]
add eax, dword [ebx + 8]
add edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x10257372
cmp dword [esp + 0x64], ebp
jb 0x10257350
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0xc]
cmp dword [esp + 0x18], ebp
jb 0x10257210
mov ebx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb0]
mov ebx, dword [ebx]
mov ecx, dword [edx + 8]
mov esi, dword [esi + 4]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x80], ebx
mov dword [eax], ebx
mov ebx, dword [esp + 0x24]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
cmp ebx, 0x10
ja 0x102573df
add dword [eax + 0xc], ebx
mov eax, dword [eax + 4]
movzx ebx, word [esp + 0x24]
mov dword [eax], 1
mov word [eax + 4], bx
mov ebx, dword [esp + 0x2c]
add ebx, 1
cmp edi, 2
jbe 0x102571c6
cmp ebx, 0xffff
ja 0x102571e3
mov word [eax + 6], bx
add eax, 8
mov ebx, dword [esp + 0x5c]
add ebp, edi
mov dword [esp + 0xb0], ebp
mov dword [ebx + 4], eax
cmp dword [esp + 0x44], ebp
jb 0x10256b45
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x54]
lea eax, [ebp - 2]
add edi, 2
sub eax, edx
cmp dword [esp + 0x34], 0x20
mov dword [esp + 0x24], edi
lea ebx, [edx + edi]
mov esi, eax
ja 0x10257b0e
imul eax, dword [ebx], 0xcf1bbcdc
imul ecx, dword [ebx + 4], 0xb7a56463
add ecx, eax
mov eax, 0xb7a56463
mul dword [ebx]
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10256fdc
mov eax, edx
mov edx, dword [esp + 0x20]
mov dword [edx + eax*4], edi
mov eax, dword [ebp - 2]
mov edx, dword [ebp + 2]
imul edx, edx, 0xb7a56463
mov edi, dword [esp + 0x20]
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov dword [edi + eax*4], esi
mov esi, dword [esp + 0x1c]
lea eax, [ebp - 1]
sub eax, esi
cmp dword [esp + 0x3c], 0x20
mov esi, eax
ja 0x10257c8e
imul eax, dword [ebx], 0xcf1bbcdc
mov edi, dword [esp + 0x24]
imul ecx, dword [ebx + 4], 0xbb000000
add ecx, eax
mov eax, 0xbb000000
mul dword [ebx]
mov ebx, dword [esp + 0x50]
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, dword [ebp - 1]
mov dword [ebx + eax*4], edi
mov ebx, dword [ebp + 3]
imul eax, edx, 0xcf1bbcdc
imul ecx, ebx, 0xbb000000
mov ebx, dword [esp + 0x50]
add ecx, eax
mov eax, 0xbb000000
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov dword [ebx + eax*4], esi
mov ebx, dword [esp + 0x68]
mov eax, ebp
mov esi, dword [ebp]
sub eax, ebx
cmp dword [eax], esi
jne 0x102570ab
test ebx, ebx
jne 0x10257d8f
mov dword [esp + 0xb0], ebp
jmp 0x10256b45
mov dword [esp + 8], 0x342
mov esi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call esi
cmp dword [esp + 0x34], 0x40
mov edi, dword [ebp]
mov ecx, dword [ebp + 4]
jbe 0x10256b6d
mov dword [esp + 0x18], ecx
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call esi
mov ecx, dword [esp + 0x18]
jmp 0x10256b6d
xor edi, edi
xor ebx, ebx
jmp 0x10256b35
mov esi, dword [esp + 0x60]
test esi, esi
je 0x102571b9
mov ebx, dword [esp + 0x7c]
jmp 0x10256d4a
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
add eax, ebx
cmp dword [esp + 0xb0], eax
mov dword [esp + 0x6c], eax
sete al
movzx eax, al
add eax, dword [esp + 0xb0]
mov esi, eax
sub eax, ebx
sub eax, ecx
cmp eax, edx
cmova eax, edx
jmp 0x10256b00
mov eax, esi
mov ebx, dword [esp + 0x64]
lea ecx, [ebx - 1]
cmp eax, ecx
jae 0x10257199
movzx ebx, word [eax]
cmp word [edx], bx
je 0x102579ab
mov ebx, dword [esp + 0x64]
cmp eax, ebx
jae 0x102571ae
movzx ebx, byte [eax]
cmp byte [edx], bl
sete dl
movzx edx, dl
add eax, edx
sub eax, esi
mov dword [esp + 0x2c], eax
jmp 0x10256e6f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x7c]
jmp 0x10256d4a
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x10257a3c
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x10256f6e
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0xb0]
mov ecx, ebp
mov dword [esp], ebx
call fcn.102a7010
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x24]
add dword [ebx + 0xc], eax
cmp eax, 0xffff
jbe 0x10257a0a
mov edx, dword [ebx + 0x24]
test edx, edx
jne 0x10257a1a
mov ebx, dword [esp + 0x5c]
mov eax, dword [ebx + 4]
mov dword [ebx + 0x24], 1
mov edx, eax
sub edx, dword [ebx]
sar edx, 3
mov dword [ebx + 0x28], edx
jmp 0x10256f43
mov eax, dword [esp + 0x64]
lea esi, [ebp + 8]
mov dword [esp + 0x54], edi
sub eax, 3
mov dword [esp + 0x4c], eax
cmp esi, eax
jae 0x102574f8
mov eax, dword [ecx + 8]
mov edx, dword [ebp + 8]
cmp eax, edx
jne 0x10257979
mov eax, ecx
lea ecx, [ebp + 0xc]
lea edi, [eax + 0xc]
mov eax, dword [esp + 0x4c]
cmp ecx, eax
jae 0x102574fd
mov eax, dword [edi]
mov edx, dword [ecx]
cmp eax, edx
je 0x10257add
xor eax, edx
tzcnt eax, eax
shr eax, 3
add ecx, eax
sub ecx, esi
jmp 0x10257522
mov eax, dword [esp + 0x64]
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x24]
sub eax, 3
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x28], edi
jae 0x102572f7
mov edi, dword [esp + 0x30]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
xor eax, dword [edi]
xor edx, dword [edi + 4]
or eax, edx
je 0x10257be6
mov eax, dword [esp + 0x4c]
lea edi, [ebp + 4]
cmp edi, eax
jae 0x102578e2
mov eax, dword [esi + 4]
mov edx, dword [ebp + 4]
cmp eax, edx
jne 0x1025799b
mov eax, dword [esp + 0x4c]
lea ecx, [ebp + 8]
lea edx, [esi + 8]
cmp ecx, eax
jae 0x102578e7
mov eax, dword [edx]
mov dword [esp + 0x24], eax
mov eax, dword [ecx]
cmp dword [esp + 0x24], eax
je 0x10257c77
mov edx, dword [esp + 0x24]
xor edx, eax
xor eax, eax
tzcnt eax, edx
shr eax, 3
add ecx, eax
sub ecx, edi
jmp 0x1025790c
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10256ed4
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10256eca
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x20]
jmp 0x10256eb4
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10256ea2
mov edx, dword [eax + 0xc]
mov eax, edx
sub eax, dword [esp + 0xb0]
add eax, 0xf
cmp eax, 0x1e
jbe 0x102579b6
mov eax, dword [esp + 0xb0]
mov ebx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x8c], eax
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov dword [edx + 0x10], ebx
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
cmp eax, 0x20
jle 0x10257225
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x38], edi
lea ebx, [edx + eax]
lea eax, [edx + 0x20]
mov dword [esp + 0x30], ebp
mov ebp, ebx
lea edx, [esi + 0x20]
lea esi, [esi]
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x80], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ecx
cmp eax, ebp
jb 0x10257460
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x38]
jmp 0x10257225
mov ebx, dword [esp + 0x4c]
lea eax, [ebp + 9]
add edx, 4
cmp eax, ebx
jae 0x10257182
mov ecx, dword [edx]
mov ebx, dword [eax]
cmp ecx, ebx
je 0x10257aa2
xor ecx, ebx
xor edx, edx
tzcnt edx, ecx
shr edx, 3
add eax, edx
sub eax, esi
mov dword [esp + 0x2c], eax
jmp 0x10256e6f
lea edi, [ecx + 8]
mov ecx, esi
mov eax, dword [esp + 0x64]
sub eax, 1
cmp ecx, eax
jae 0x10257514
movzx eax, word [ecx]
cmp word [edi], ax
je 0x10257af8
mov eax, dword [esp + 0x64]
cmp ecx, eax
jb 0x10257967
sub ecx, esi
mov esi, dword [esp + 0x30]
mov eax, ebp
lea edi, [ecx + 8]
sub eax, esi
mov dword [esp + 0x38], eax
cmp dword [esp + 0xb0], ebp
jae 0x10257574
cmp dword [esp + 0x6c], esi
jae 0x10257574
mov eax, esi
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0xb0]
mov esi, ebx
jmp 0x10257569
sub ebp, 1
sub eax, 1
add edi, 1
cmp edx, ebp
jae 0x10257572
cmp ecx, eax
jae 0x10257572
movzx ebx, byte [eax - 1]
cmp byte [ebp - 1], bl
je 0x10257558
mov ebx, esi
cmp dword [esp + 0x2c], 3
ja 0x1025758c
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
sub ebx, eax
mov eax, dword [esp + 0x20]
mov dword [eax + esi*4], ebx
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x1025774c
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x5c]
add eax, 3
mov dword [esp + 0x2c], eax
mov eax, ebp
sub eax, dword [esp + 0xb0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
sub eax, 0x20
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
cmp eax, dword [ebx + 0x1c]
jae 0x102577db
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x20]
cmp eax, 0x20000
ja 0x102577b2
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x24]
add eax, dword [ebx + 8]
add edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x10257790
cmp dword [esp + 0x64], ebp
jb 0x1025776e
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0xc]
cmp dword [esp + 0x18], ebp
jb 0x102576b0
mov ebx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb0]
mov ebx, dword [ebx]
mov ecx, dword [edx + 8]
mov esi, dword [esi + 4]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x80], ebx
mov dword [eax], ebx
mov ebx, dword [esp + 0x24]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
cmp ebx, 0x10
ja 0x102577fd
add dword [eax + 0xc], ebx
mov eax, dword [eax + 4]
movzx ebx, word [esp + 0x24]
mov word [eax + 4], bx
mov ebx, dword [esp + 0x2c]
mov dword [eax], ebx
lea ebx, [edi - 3]
cmp edi, 2
jbe 0x10257703
cmp ebx, 0xffff
ja 0x10257720
mov word [eax + 6], bx
mov ebx, dword [esp + 0x60]
add eax, 8
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x60], ebx
jmp 0x10256f75
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0xb0]
mov ecx, ebp
mov dword [esp], ebx
call fcn.102a7010
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x24]
add dword [ebx + 0xc], eax
cmp eax, 0xffff
jbe 0x10257a12
mov edx, dword [ebx + 0x24]
test edx, edx
jne 0x10257a80
mov ebx, dword [esp + 0x5c]
mov eax, dword [ebx + 4]
mov dword [ebx + 0x24], 1
mov edx, eax
sub edx, dword [ebx]
sar edx, 3
mov dword [ebx + 0x28], edx
jmp 0x10257671
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x10257a5e
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x10257694
mov dword [esp + 8], 0x10f
mov dword [esp + 4], str.zstd_lib_compress_zstd_double_fast.c
mov dword [esp], 0x1044cadd
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10257598
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10257602
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102575f8
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x20]
jmp 0x102575e2
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102575d0
mov edx, dword [eax + 0xc]
mov eax, edx
sub eax, dword [esp + 0xb0]
add eax, 0xf
cmp eax, 0x1e
jbe 0x102579e0
mov eax, dword [esp + 0xb0]
mov ebx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x8c], eax
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov dword [edx + 0x10], ebx
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
cmp eax, 0x20
jle 0x102576c5
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x58], edi
lea ebx, [edx + eax]
lea eax, [edx + 0x20]
mov dword [esp + 0x30], ebp
mov ebp, ebx
lea edx, [esi + 0x20]
lea esi, [esi]
nop
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x80], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ecx
cmp eax, ebp
jb 0x10257880
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x58]
jmp 0x102576c5
lea edx, [esi + 4]
mov ecx, edi
mov eax, dword [esp + 0x64]
sub eax, 1
cmp ecx, eax
jae 0x102578fe
movzx eax, word [ecx]
cmp word [edx], ax
je 0x10257b03
mov eax, dword [esp + 0x64]
cmp ecx, eax
jb 0x10257989
sub ecx, edi
mov eax, ebp
lea edi, [ecx + 4]
sub eax, esi
mov dword [esp + 0x38], eax
cmp dword [esp + 0x6c], esi
jae 0x10257574
cmp dword [esp + 0xb0], ebp
jae 0x10257574
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0xb0]
jmp 0x10257959
sub ebp, 1
sub esi, 1
add edi, 1
cmp eax, ebp
jae 0x10257574
cmp edx, esi
jae 0x10257574
movzx ecx, byte [esi - 1]
cmp byte [ebp - 1], cl
je 0x10257940
jmp 0x10257574
movzx eax, byte [ecx]
cmp byte [edi], al
sete al
movzx eax, al
add ecx, eax
jmp 0x10257520
xor eax, edx
xor ecx, ecx
tzcnt ecx, eax
shr ecx, 3
jmp 0x10257522
movzx eax, byte [ecx]
cmp byte [edx], al
sete al
movzx eax, al
add ecx, eax
jmp 0x1025790a
xor eax, edx
xor ecx, ecx
tzcnt ecx, eax
shr ecx, 3
jmp 0x1025790c
add eax, 2
add edx, 2
jmp 0x10257199
mov dword [esp + 0x30], edx
mov dword [esp + 8], 0xe9
mov dword [esp + 4], 0x1044c910
mov dword [esp], 0x1044c93c
call dword [sym.imp.msvcrt.dll__assert]
mov edx, dword [esp + 0x30]
jmp 0x102573f7
mov dword [esp + 0x30], edx
mov dword [esp + 8], 0xe9
mov dword [esp + 4], 0x1044c910
mov dword [esp], 0x1044c93c
call dword [sym.imp.msvcrt.dll__assert]
mov edx, dword [esp + 0x30]
jmp 0x10257815
mov eax, dword [ebx + 4]
jmp 0x10256f43
mov eax, dword [ebx + 4]
jmp 0x10257671
mov dword [esp + 8], 0x2b2
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10257246
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102571f2
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x1025772f
mov dword [esp + 8], 0x2b2
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x102576e6
mov ebx, dword [esp + 0x4c]
add eax, 4
add edx, 4
cmp eax, ebx
jb 0x102574d4
jmp 0x10257182
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x70]
movzx edi, byte [esp + 0x77]
mov ebp, dword [esp + 0x78]
test eax, eax
setne byte [esp + 0x58]
jmp 0x10256d35
mov eax, dword [esp + 0x4c]
add ecx, 4
add edi, 4
cmp ecx, eax
jb 0x102572a4
jmp 0x102574fd
add ecx, 2
add edi, 2
jmp 0x10257514
add ecx, 2
add edx, 2
jmp 0x102578fe
mov dword [esp + 8], 0x342
mov edi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jbe 0x10257f83
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
imul ecx, eax, 0xcf1bbcdc
imul edx, edx, 0xb7a56463
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10257b8e
mov eax, edx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [edx + eax*4], ecx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov eax, dword [ebp - 2]
mov edx, dword [ebp + 2]
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
jmp 0x10256fe9
mov eax, dword [esp + 0x4c]
lea edi, [ebx + 8]
cmp edi, eax
mov eax, dword [esp + 0x30]
jae 0x10257d55
mov eax, dword [eax + 8]
mov edx, dword [ebx + 8]
cmp eax, edx
je 0x10257f4d
xor eax, edx
tzcnt eax, eax
shr eax, 3
mov esi, dword [esp + 0x30]
lea edi, [eax + 8]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x38], eax
cmp dword [esp + 0x6c], esi
jae 0x102581d0
mov ebp, ebx
cmp dword [esp + 0xb0], ebx
jae 0x102581d0
mov eax, esi
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0xb0]
mov esi, ebx
jmp 0x10257c69
sub ebp, 1
sub eax, 1
add edi, 1
cmp ecx, ebp
jae 0x10257572
cmp edx, eax
jae 0x10257572
movzx ebx, byte [eax - 1]
cmp byte [ebp - 1], bl
je 0x10257c50
jmp 0x10257572
mov eax, dword [esp + 0x4c]
add ecx, 4
add edx, 4
cmp ecx, eax
jb 0x10257326
jmp 0x102578e7
mov dword [esp + 8], 0x342
mov edi, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
cmp dword [esp + 0x3c], 0x40
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
jbe 0x10257fda
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x329
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call edi
mov eax, dword [esp + 0x2c]
imul ecx, ebx, 0xbb000000
mov ebx, dword [esp + 0x50]
imul edx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xbb000000
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, dword [esp + 0x24]
mov dword [ebx + eax*4], edx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov edx, dword [ebp - 1]
mov ebx, dword [ebp + 3]
mov dword [esp + 8], 0x329
mov dword [esp + 4], 0x1044c8d4
mov dword [esp + 0x24], edx
mov dword [esp], 0x1044c97c
call edi
mov edx, dword [esp + 0x24]
jmp 0x10257066
lea esi, [eax + 8]
mov eax, edi
mov edx, dword [esp + 0x64]
sub edx, 1
cmp eax, edx
jae 0x10257d73
movzx edx, word [eax]
cmp word [esi], dx
jne 0x10257d73
add eax, 2
add esi, 2
mov edx, dword [esp + 0x64]
cmp eax, edx
jae 0x10257d88
movzx edx, byte [eax]
cmp byte [esi], dl
sete dl
movzx edx, dl
add eax, edx
sub eax, edi
jmp 0x10257c10
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], eax
mov eax, 4
lea ecx, [ebp + 4]
sub eax, ebx
mov ebx, dword [esp + 0x4c]
add eax, ebp
cmp ecx, ebx
jae 0x10258086
mov edx, dword [eax]
mov ebx, dword [ebp + 4]
cmp edx, ebx
je 0x102580bd
xor ebx, edx
tzcnt ebx, ebx
shr ebx, 3
lea eax, [ebx + 4]
mov edi, ebp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
sub edi, eax
cmp dword [esp + 0x3c], 0x20
ja 0x10258153
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
imul edx, edx, 0xbb000000
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xbb000000
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10257e15
mov eax, edx
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x34], 0x20
mov dword [edx + eax*4], edi
ja 0x102580ed
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
imul edx, edx, 0xb7a56463
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10257e55
mov eax, edx
mov edx, dword [esp + 0x20]
mov dword [edx + eax*4], edi
mov eax, dword [esi + 4]
sub eax, dword [esi]
sar eax, 3
cmp eax, dword [esi + 0x1c]
jae 0x10258279
mov eax, dword [esi + 0x20]
cmp eax, 0x20000
ja 0x10258254
add eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x10258232
cmp dword [esp + 0x64], ebp
jb 0x10258210
mov eax, dword [esi + 0xc]
cmp dword [esp + 0x18], ebp
jb 0x10258071
mov edi, dword [ebp]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x80], edi
mov edi, dword [ebp + 4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x84], edi
mov dword [esp + 0x8c], edx
mov edx, dword [ebp]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x88], ecx
mov dword [eax], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
mov eax, dword [esi + 4]
xor edx, edx
add ebx, 1
cmp dword [esp + 0x24], 2
mov word [eax + 4], dx
mov dword [eax], 1
jbe 0x10258030
cmp ebx, 0xffff
ja 0x1025804d
mov word [eax + 6], bx
add eax, 8
mov dword [esi + 4], eax
mov eax, dword [esp + 0x24]
add ebp, eax
cmp dword [esp + 0x44], ebp
jb 0x102570ab
mov ebx, dword [esp + 0x68]
mov eax, ebp
mov edi, dword [ebp]
sub eax, ebx
cmp dword [eax], edi
sete dl
test ebx, ebx
setne al
test dl, al
je 0x102570ab
mov eax, dword [esp + 0x60]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], eax
jmp 0x10257d9f
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
lea eax, [ebx + 0xc]
add esi, 0xc
cmp eax, edx
jae 0x10257d5a
mov ecx, dword [esi]
mov edx, dword [eax]
cmp ecx, edx
je 0x102581d7
xor edx, ecx
tzcnt edx, edx
shr edx, 3
add edx, eax
mov eax, edx
sub eax, edi
jmp 0x10257c10
imul edx, edx, 0xb7a56463
imul ecx, eax, 0xcf1bbcdc
add ecx, edx
mov edx, 0xb7a56463
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x40]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x10257fab
mov eax, edx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [edx + eax*4], ecx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov eax, dword [ebp - 2]
mov edx, dword [ebp + 2]
jmp 0x10256fe9
imul edx, eax, 0xcf1bbcdc
imul ecx, ebx, 0xbb000000
mov ebx, dword [esp + 0x50]
add ecx, edx
mov edx, 0xbb000000
mul edx
add edx, ecx
movzx ecx, byte [esp + 0x48]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, dword [esp + 0x24]
mov dword [ebx + eax*4], edx
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
call edi
mov edx, dword [ebp - 1]
mov ebx, dword [ebp + 3]
jmp 0x10257066
mov dword [esp + 8], 0x2bc
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca9d
call dword [sym.imp.msvcrt.dll__assert]
mov edi, dword [esi + 0x24]
test edi, edi
jne 0x102581ee
mov eax, dword [esi + 4]
mov dword [esi + 0x24], 2
mov edx, eax
sub edx, dword [esi]
sar edx, 3
mov dword [esi + 0x28], edx
jmp 0x10257f05
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ebp
mov dword [esp], edi
call fcn.102a7010
jmp 0x10257edc
mov ebx, ecx
mov edi, dword [esp + 0x64]
lea edx, [edi - 1]
cmp ebx, edx
jae 0x102580a1
movzx edi, word [ebx]
cmp word [eax], di
jne 0x102580a1
add ebx, 2
add eax, 2
mov edi, dword [esp + 0x64]
cmp ebx, edi
jae 0x102580b6
movzx edx, byte [ebx]
cmp byte [eax], dl
sete al
movzx eax, al
add ebx, eax
sub ebx, ecx
jmp 0x10257dcd
mov edi, dword [esp + 0x4c]
lea ebx, [ebp + 8]
add eax, 4
cmp ebx, edi
jae 0x10258088
mov edx, dword [eax]
mov edi, dword [ebx]
cmp edx, edi
je 0x102581b9
mov eax, edx
xor eax, edi
tzcnt eax, eax
shr eax, 3
add eax, ebx
sub eax, ecx
mov ebx, eax
jmp 0x10257dcd
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
mov dword [esp + 0x38], ecx
call ecx
cmp dword [esp + 0x34], 0x40
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
jbe 0x10257e2d
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x338
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
jmp 0x10257e2d
mov ecx, dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x342
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c970
mov dword [esp + 0x38], ecx
call ecx
cmp dword [esp + 0x3c], 0x40
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
jbe 0x10257ded
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], 0x329
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c97c
call ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
jmp 0x10257ded
mov edi, dword [esp + 0x4c]
add ebx, 4
add eax, 4
cmp ebx, edi
jb 0x102580cb
jmp 0x10258088
mov ebp, ebx
jmp 0x10257574
mov edx, dword [esp + 0x4c]
add eax, 4
add esi, 4
cmp eax, edx
jb 0x10257f63
jmp 0x10257d5a
mov dword [esp + 8], 0x2bf
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca70
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10258058
mov dword [esp + 8], 0x2a1
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044ca4c
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10257e91
mov dword [esp + 8], 0x2a0
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9fc
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10257e87
mov dword [esp + 8], 0x29f
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c9dc
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [esi + 0x20]
jmp 0x10257e7b
mov dword [esp + 8], 0x29d
mov dword [esp + 4], 0x1044c8d4
mov dword [esp], 0x1044c984
call dword [sym.imp.msvcrt.dll__assert]
jmp 0x10257e6d