Function at 0x10170870
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
push ebx
mov ebx, ecx
xor dh, dh
push esi
push edi
mov dword [ebp - 8], ebx
mov edi, dword [ebx + 0xb24]
mov eax, dword [ebx + 0xbbf8]
mov dword [ebp - 0x24], eax
mov byte [ebp - 1], dh
mov ecx, dword [edi + 0x18]
lea eax, [ecx + 0x400]
cmp eax, dword [edi + 0x10]
jbe 0x101708b8
mov eax, dword [edi]
push ecx
push dword [edi + 0x14]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov dh, byte [ebp - 1]
movzx eax, byte [ebx + 0xbc2d]
movzx edi, byte [ebx + 0xbc2c]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x50], eax
mov byte [ebx + 0xbc55], 1
mov byte [ebx + 0xbc51], 0
mov dword [ebp - 0x40], edi
cmp edi, eax
jb 0x10170953
lea esi, [ebx + 0xbc2f]
mov dword [ebp - 0x20], esi
movzx eax, byte [ebx + 0xbc2d]
movzx eax, byte [eax + 0x101eee00]
movsx eax, word [ecx + eax*2]
movzx edi, ax
mov ecx, edi
mov dword [ebp - 0x14], edi
shr ecx, 0xc
test ecx, ecx
je 0x10172b38
movzx eax, byte [esi]
inc eax
cmp ecx, eax
jne 0x10172b38
movzx eax, word [ebx + 0xbc30]
test ax, ax
je 0x1017212a
cwde
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
shr ecx, 8
test ecx, ecx
je 0x10171ae1
mov al, byte [ecx + 0x101ef0e0]
jmp 0x10171ae7
mov dh, byte [ebp - 1]
movzx eax, byte [edi + 0x101eee00]
mov esi, 0x10
movsx eax, word [ecx + eax*2]
movzx eax, ax
mov ecx, eax
mov dword [ebp - 0x14], eax
shr ecx, 0xc
test ecx, ecx
jne 0x101709e9
mov dl, al
movzx ecx, dh
movzx eax, dl
add eax, ecx
xor eax, ecx
test eax, 0xfffffff0
je 0x101709d3
nop word [eax + eax]
inc byte [ebx + 0xbc55]
cmp dl, 0x10
movzx ecx, byte [ebx + 0xbc55]
movzx eax, byte [ecx + ebx + 0xbc4f]
mov byte [ecx + ebx + 0xbc50], al
mov cl, 0x10
movzx eax, dl
cmova eax, esi
add dh, al
cmp cl, dl
movzx ecx, dh
lea eax, [edx - 0x10]
sbb dl, dl
and dl, al
movzx eax, dl
add eax, ecx
xor eax, ecx
test eax, 0xfffffff0
jne 0x10170990
mov ecx, dword [ebp - 0x14]
lea esi, [ebx + 0xbc2f]
add dh, dl
dec ecx
mov byte [ebp - 1], dh
add edi, ecx
jmp 0x10171ab5
movzx eax, byte [ebx + 0xbc2f]
lea esi, [ebx + 0xbc2f]
mov dword [ebp - 0x20], esi
cmp ecx, eax
ja 0x10170a2c
inc dh
mov byte [ebp - 1], dh
test dh, 0xf
jne 0x10171ab8
inc byte [ebx + 0xbc55]
movzx ecx, byte [ebx + 0xbc55]
movzx eax, byte [ecx + ebx + 0xbc4f]
mov byte [ecx + ebx + 0xbc50], al
jmp 0x10171ab8
inc eax
cmp ecx, eax
jne 0x10171a87
movzx eax, word [ebx + 0xbc30]
test ax, ax
je 0x101710a1
cwde
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
shr ecx, 8
test ecx, ecx
je 0x10170a5c
mov al, byte [ecx + 0x101ef0e0]
jmp 0x10170a62
mov al, byte [eax + 0x101eefe0]
mov esi, dword [ebp - 0x24]
mov edi, dword [ebx + 0xb24]
movzx eax, al
mov ecx, eax
mov dword [ebp - 0x38], eax
shl ecx, 4
movzx eax, byte [ecx + esi + 0xd50]
movzx ecx, word [esi + ecx*2 + 0xb50]
lea esi, [ebx + 0xbcd0]
cdq
mov dword [ebp - 0x34], eax
lea eax, [ebx + 0xbccc]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x10], esi
mov esi, dword [esi]
add esi, dword [ebp - 0x34]
mov dword [ebp - 0x30], ecx
adc eax, edx
mov dword [ebp - 0x1c], eax
jne 0x10170ad3
cmp esi, 0x20
jae 0x10170ad3
mov eax, dword [ebp - 0x30]
mov ecx, 0x20
sub ecx, dword [ebp - 0x34]
shl eax, cl
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
shr eax, cl
mov ecx, dword [ebp - 0xc]
or dword [ecx], eax
mov eax, dword [ecx]
jmp 0x10170d3f
add esi, 0xffffffe0
lea edx, [edi + 0x14]
mov dword [ebp - 0x44], esi
adc eax, 0xffffffff
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x34]
and ecx, dword [eax*4 + 0x101ef480]
mov eax, ecx
mov dword [ebp - 0x30], ecx
mov ecx, esi
shr eax, cl
mov ecx, dword [ebp - 0xc]
or dword [ecx], eax
mov eax, dword [ecx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x2c], eax
shr eax, 0x18
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x3c], eax
cmp eax, ecx
jne 0x10170b36
mov eax, dword [edi]
push dword [ebp - 0x3c]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
jmp 0x10170b39
mov dword [ebp - 0x18], edx
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10170b50
mov ecx, dword [ebp - 0x28]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x28], 0xff
mov dword [ebp - 0x34], eax
mov dword [edi + 0x18], eax
jne 0x10170b9c
cmp eax, ecx
jne 0x10170b84
mov eax, dword [edi]
push dword [ebp - 0x34]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10170b93
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ebx
shr dword [ebp - 0x28], 0x10
cmp eax, ecx
jne 0x10170bc8
mov eax, dword [edi]
push dword [ebp - 0x34]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10170bdf
mov ecx, dword [ebp - 0x28]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x28], 0xff
mov dword [ebp - 0x34], eax
mov dword [edi + 0x18], eax
jne 0x10170c2b
cmp eax, ecx
jne 0x10170c13
mov eax, dword [edi]
push dword [ebp - 0x34]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10170c22
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ebx
shr dword [ebp - 0x28], 8
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x10170c5a
mov eax, dword [edi]
push dword [ebp - 0x34]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10170c71
mov ecx, dword [ebp - 0x28]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x28], 0xff
mov dword [ebp - 0x34], eax
mov dword [edi + 0x18], eax
jne 0x10170cbd
cmp eax, ecx
jne 0x10170ca5
mov eax, dword [edi]
push dword [ebp - 0x34]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10170cb4
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x34], eax
cmp eax, ecx
jne 0x10170cdc
mov eax, dword [edi]
push dword [ebp - 0x34]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx]
test ecx, ecx
je 0x10170ceb
mov ebx, dword [ebp - 0x2c]
mov byte [eax + ecx], bl
mov ebx, dword [ebp - 8]
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x2c], 0xff
mov dword [edi + 0x18], ecx
jne 0x10170d24
cmp ecx, dword [edi + 0x10]
jne 0x10170d17
mov eax, dword [edi]
push ecx
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
test eax, eax
je 0x10170d21
mov byte [ecx + eax], 0
inc dword [edi + 0x18]
mov esi, dword [ebp - 0x44]
mov ecx, 0x20
sub ecx, esi
mov eax, dword [esi*4 + 0x101ef480]
and eax, dword [ebp - 0x30]
shl eax, cl
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x10]
mov edx, esi
mov edi, dword [ebp - 0x1c]
mov dword [ecx], edx
mov dword [ecx + 4], edi
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x1017101c
movzx edx, word [ebx + 0xbc30]
add ecx, esi
mov edi, dword [ebx + 0xb24]
mov ebx, 0
adc ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x44], 0
jne 0x10170dae
cmp ecx, 0x20
jae 0x10170dae
mov edi, dword [ebp - 0x38]
mov ecx, 0x20
sub ecx, edi
shl edx, cl
mov ecx, esi
shr edx, cl
or edx, eax
mov eax, dword [ebp - 0xc]
add edi, esi
mov esi, dword [ebp - 0x10]
mov dword [eax], edx
mov eax, dword [ebp - 0x44]
adc eax, dword [ebp - 0x1c]
mov dword [esi], edi
mov dword [esi + 4], eax
jmp 0x1017101c
mov esi, dword [ebp - 0x38]
add ecx, 0xffffffe0
mov dword [ebp - 0x28], ecx
adc dword [ebp - 0x34], 0xffffffff
and edx, dword [esi*4 + 0x101ef480]
mov dword [ebp - 0x1c], edx
shr edx, cl
or edx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x2c], edx
mov dword [eax], edx
mov eax, edx
mov ecx, dword [edi + 0x10]
lea edx, [edi + 0x14]
shr eax, 0x18
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x18], edx
cmp eax, ecx
jne 0x10170e0d
mov eax, dword [edi]
push dword [ebp - 0x44]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
jmp 0x10170e10
mov dword [ebp - 0x18], edx
mov esi, dword [edx]
mov dword [ebp - 0x30], esi
test esi, esi
je 0x10170e27
mov ecx, dword [ebp - 0x3c]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x30], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x3c], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10170e73
cmp eax, ecx
jne 0x10170e5b
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x30]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10170e6a
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x2c]
shr ebx, 0x10
mov dword [ebp - 0x3c], ebx
cmp eax, ecx
jne 0x10170e9e
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
mov dword [ebp - 0x30], esi
test esi, esi
je 0x10170eb5
mov ecx, dword [ebp - 0x3c]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x30], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x3c], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10170f01
cmp eax, ecx
jne 0x10170ee9
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x30]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10170ef8
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x2c]
shr ebx, 8
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x10170f2f
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
mov dword [ebp - 0x30], esi
test esi, esi
je 0x10170f46
mov ecx, dword [ebp - 0x3c]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x30], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x3c], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10170f92
cmp eax, ecx
jne 0x10170f7a
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x30]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10170f89
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x10170fb1
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10170fbd
mov ecx, dword [ebp - 0x2c]
mov byte [eax + esi], cl
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x2c], 0xff
mov dword [edi + 0x18], ecx
jne 0x10170ff6
cmp ecx, dword [edi + 0x10]
jne 0x10170fe9
mov eax, dword [edi]
push ecx
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
test eax, eax
je 0x10170ff3
mov byte [ecx + eax], 0
inc dword [edi + 0x18]
mov edx, dword [ebp - 0x28]
mov ecx, 0x20
sub ecx, edx
mov eax, dword [edx*4 + 0x101ef480]
and eax, dword [ebp - 0x1c]
shl eax, cl
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
mov dword [ecx], edx
mov dword [ecx + 4], eax
lea esi, [ebx + 0xbc38]
mov ecx, esi
mov dword [ebp - 0x34], esi
call fcn.101891a0
test edx, edx
jne 0x10171034
test eax, eax
je 0x10171096
mov ecx, esi
call fcn.101891a0
movzx ecx, byte [ebx + 0xbc55]
mov edi, eax
mov esi, edx
movzx eax, byte [ecx + ebx + 0xbc50]
cdq
cmp esi, edx
jb 0x10171096
ja 0x10171059
cmp edi, eax
jbe 0x10171096
lea ecx, [ebx + 0xbc38]
call fcn.101891a0
movzx ecx, byte [ebx + 0xbc55]
mov edi, eax
mov esi, edx
movzx eax, byte [ecx + ebx + 0xbc50]
mov ecx, ebx
cdq
sub edi, eax
lea eax, [ebx + 0xbc38]
sbb esi, edx
add edi, 0xffffffff
adc esi, 0xffffffff
push esi
push edi
push 0
push 0
push eax
call fcn.10174510
xor eax, eax
mov word [ebx + 0xbc30], ax
jmp 0x101710bc
lea eax, [ebx + 0xbccc]
mov dword [ebp - 0xc], eax
lea eax, [ebx + 0xbc38]
mov dword [ebp - 0x34], eax
lea eax, [ebx + 0xbcd0]
mov dword [ebp - 0x10], eax
movzx eax, byte [ebp - 1]
mov ecx, eax
shr eax, 4
and ecx, 0xf
mov dword [ebp - 0x30], eax
shl ecx, 4
inc ecx
mov dword [ebp - 0x4c], ecx
test eax, eax
je 0x1017144f
lea eax, [ebx + 0xbc50]
mov dword [ebp - 0x18], eax
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebx + 0xb24]
movzx eax, byte [ecx + 0xe40]
movzx ecx, word [ecx + 0xd30]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x10]
cdq
mov edi, edx
mov dword [ebp - 0x44], edi
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x1c], ecx
mov ecx, eax
add ecx, edx
adc edi, dword [ebp - 0x1c]
jne 0x1017114e
cmp ecx, 0x20
jae 0x1017114e
mov esi, dword [ebp - 0x28]
mov ecx, 0x20
sub ecx, eax
shl esi, cl
mov ecx, edx
shr esi, cl
mov ecx, dword [ebp - 0xc]
or dword [ecx], esi
add edx, eax
mov eax, dword [ebp - 0x1c]
adc eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
jmp 0x1017137e
mov edx, dword [ebp - 0x28]
add ecx, 0xffffffe0
mov dword [ebp - 0x44], ecx
adc edi, 0xffffffff
and edx, dword [eax*4 + 0x101ef480]
mov eax, edx
mov dword [ebp - 0x1c], edi
shr eax, cl
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x28], edx
or dword [ecx], eax
mov eax, dword [ecx]
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x2c], eax
shr eax, 0x18
mov dword [ebp - 0x3c], eax
cmp edi, ecx
jne 0x101711a3
mov eax, dword [esi]
push edi
push dword [esi + 0x14]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x101b0250]
mov ecx, esi
call edi
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0x3c]
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x38], edx
test edx, edx
je 0x101711b9
mov byte [edi + edx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x38], edx
mov edi, dword [esi + 0x18]
inc edi
cmp byte [ebp - 0x3c], 0xff
mov dword [esi + 0x18], edi
jne 0x101711fc
cmp edi, ecx
jne 0x101711e5
mov eax, dword [esi]
push edi
push dword [ebp - 0x38]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x101b0250]
mov ecx, esi
call edi
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x101711f6
mov byte [edi + edx], 0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
inc dword [esi + 0x18]
mov edi, dword [esi + 0x18]
mov eax, dword [ebp - 0x2c]
shr eax, 0x10
mov dword [ebp - 0x3c], eax
cmp edi, ecx
jne 0x10171225
mov eax, dword [esi]
push edi
push edx
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x101b0250]
mov ecx, esi
call edi
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0x3c]
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x38], edx
test edx, edx
je 0x1017123b
mov byte [edi + edx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x38], edx
mov edi, dword [esi + 0x18]
inc edi
cmp byte [ebp - 0x3c], 0xff
mov dword [esi + 0x18], edi
jne 0x1017127e
cmp edi, ecx
jne 0x10171267
mov eax, dword [esi]
push edi
push dword [ebp - 0x38]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x101b0250]
mov ecx, esi
call edi
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x10171278
mov byte [edi + edx], 0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
inc dword [esi + 0x18]
mov edi, dword [esi + 0x18]
mov eax, dword [ebp - 0x2c]
shr eax, 8
mov dword [ebp - 0x3c], eax
cmp edi, ecx
jne 0x101712a7
mov eax, dword [esi]
push edi
push edx
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x101b0250]
mov ecx, esi
call edi
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0x3c]
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x38], edx
test edx, edx
je 0x101712bd
mov byte [edi + edx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x38], edx
mov edi, dword [esi + 0x18]
inc edi
cmp byte [ebp - 0x3c], 0xff
mov dword [esi + 0x18], edi
jne 0x10171300
cmp edi, ecx
jne 0x101712e9
mov eax, dword [esi]
push edi
push dword [ebp - 0x38]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x101b0250]
mov ecx, esi
call edi
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x101712fa
mov byte [edi + edx], 0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
inc dword [esi + 0x18]
mov edi, dword [esi + 0x18]
cmp edi, ecx
jne 0x1017131a
mov eax, dword [esi]
push edi
push edx
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x101b0250]
mov ecx, esi
call edi
mov edi, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x1017132a
mov eax, dword [ebp - 0x2c]
mov byte [edi + edx], al
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
inc ecx
cmp byte [ebp - 0x2c], 0xff
mov dword [esi + 0x18], ecx
jne 0x10171360
cmp ecx, dword [esi + 0x10]
jne 0x10171352
mov eax, dword [esi]
push ecx
push edx
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x101b0250]
mov ecx, esi
call edi
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x1017135d
mov byte [ecx + eax], 0
inc dword [esi + 0x18]
mov edx, dword [ebp - 0x44]
mov ecx, 0x20
mov ebx, dword [ebp - 8]
sub ecx, edx
mov eax, dword [edx*4 + 0x101ef480]
and eax, dword [ebp - 0x28]
shl eax, cl
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
mov dword [eax], edx
mov dword [eax + 4], ecx
lea ecx, [ebx + 0xbc38]
call fcn.101891a0
test edx, edx
jne 0x101713a0
test eax, eax
je 0x1017143f
mov ecx, dword [ebp - 0x18]
mov al, byte [ecx]
cmp al, byte [ecx + 1]
jae 0x1017143f
lea ecx, [ebx + 0xbc38]
call fcn.101891a0
mov edi, eax
mov ebx, edx
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 0xbc55]
movzx eax, byte [ecx + eax + 0xbc50]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 1]
cdq
mov dword [ebp - 0x38], eax
mov eax, edx
mov edx, dword [ebp - 0x38]
sub edx, ecx
mov ecx, dword [ebp - 0x34]
sbb eax, esi
add edx, edi
adc eax, ebx
add edx, 0xffffffff
mov dword [ebp - 0x38], edx
adc eax, 0xffffffff
mov dword [ebp - 0x44], eax
call fcn.101891a0
mov edi, eax
mov ebx, edx
mov eax, dword [ebp - 8]
push dword [ebp - 0x44]
push dword [ebp - 0x38]
movzx ecx, byte [eax + 0xbc55]
movzx eax, byte [ecx + eax + 0xbc50]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax]
cdq
sub eax, ecx
sbb edx, esi
add eax, edi
adc edx, ebx
mov ebx, dword [ebp - 8]
push edx
push eax
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.10174510
inc dword [ebp - 0x18]
sub dword [ebp - 0x30], 1
jne 0x101710f0
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x24]
movzx eax, byte [ecx + edi + 0xd50]
movzx ecx, word [edi + ecx*2 + 0xb50]
mov edi, dword [ebx + 0xb24]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x10]
cdq
mov esi, eax
mov eax, edx
mov dword [ebp - 0x38], eax
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x3c], ecx
mov ecx, esi
mov ebx, dword [ebp - 0x3c]
add ecx, edx
mov dword [ebp - 0x4c], edx
adc dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 8]
jne 0x101714bc
cmp ecx, 0x20
jae 0x101714bc
mov edi, dword [ebp - 0x30]
mov ecx, 0x20
sub ecx, esi
shl edi, cl
mov ecx, edx
shr edi, cl
mov ecx, dword [ebp - 0xc]
or dword [ecx], edi
add esi, dword [ebp - 0x4c]
mov edx, dword [ecx]
adc eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov eax, esi
jmp 0x10171729
mov eax, dword [ebp - 0x38]
lea edx, [edi + 0x14]
add ecx, 0xffffffe0
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x44], ecx
adc eax, 0xffffffff
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x30]
and eax, dword [esi*4 + 0x101ef480]
mov dword [ebp - 0x30], eax
shr eax, cl
mov ecx, dword [ebp - 0xc]
or dword [ecx], eax
mov eax, dword [ecx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x28], eax
shr eax, 0x18
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x4c], eax
cmp eax, ecx
jne 0x1017151e
mov eax, dword [edi]
push dword [ebp - 0x4c]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
jmp 0x10171521
mov dword [ebp - 0x18], edx
mov esi, dword [edx]
mov dword [ebp - 0x2c], esi
test esi, esi
je 0x10171538
mov ecx, dword [ebp - 0x3c]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x2c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x3c], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10171584
cmp eax, ecx
jne 0x1017156c
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x2c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x1017157b
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ebx
shr dword [ebp - 0x2c], 0x10
cmp eax, ecx
jne 0x101715b0
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x101715c7
mov ecx, dword [ebp - 0x2c]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x2c], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10171613
cmp eax, ecx
jne 0x101715fb
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x1017160a
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ebx
shr dword [ebp - 0x2c], 8
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x10171642
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10171659
mov ecx, dword [ebp - 0x2c]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x2c], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x101716a5
cmp eax, ecx
jne 0x1017168d
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x1017169c
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x101716c4
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx]
test ecx, ecx
je 0x101716d3
mov ebx, dword [ebp - 0x28]
mov byte [ecx + eax], bl
mov ebx, dword [ebp - 8]
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x28], 0xff
mov dword [edi + 0x18], ecx
jne 0x1017170c
cmp ecx, dword [edi + 0x10]
jne 0x101716ff
mov eax, dword [edi]
push ecx
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
test eax, eax
je 0x10171709
mov byte [eax + ecx], 0
inc dword [edi + 0x18]
mov eax, dword [ebp - 0x44]
mov ecx, 0x20
sub ecx, eax
mov esi, eax
mov edx, dword [eax*4 + 0x101ef480]
and edx, dword [ebp - 0x30]
shl edx, cl
mov ecx, dword [ebp - 0xc]
mov dword [ecx], edx
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x1c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], edi
mov edi, dword [ebx + 0xb24]
mov cl, byte [eax]
mov eax, esi
shr dword [ebp - 0x14], cl
add eax, 1
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], eax
mov eax, ecx
adc eax, 0
mov dword [ebp - 0x44], eax
jne 0x10171779
cmp dword [ebp - 0x4c], 0x20
jae 0x10171779
mov eax, dword [ebp - 0x14]
mov edi, esi
add edi, 1
adc ecx, 0
shl eax, 0x1f
mov dword [ebp - 0x1c], ecx
mov ecx, esi
shr eax, cl
or eax, edx
jmp 0x101719db
mov eax, dword [ebp - 0x1c]
mov ecx, esi
add ecx, 0xffffffe1
mov dword [ebp - 0x44], ecx
adc eax, 0xffffffff
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
and eax, dword [0x101ef484]
mov dword [ebp - 0x14], eax
shr eax, cl
mov ecx, dword [ebp - 0xc]
or eax, edx
mov dword [ebp - 0x30], eax
lea edx, [edi + 0x14]
mov dword [ebp - 0x18], edx
mov dword [ecx], eax
mov ecx, dword [edi + 0x10]
shr eax, 0x18
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x4c], eax
cmp eax, ecx
jne 0x101717dc
mov eax, dword [edi]
push dword [ebp - 0x4c]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
jmp 0x101717df
mov dword [ebp - 0x18], edx
mov esi, dword [edx]
mov dword [ebp - 0x2c], esi
test esi, esi
je 0x101717f6
mov ecx, dword [ebp - 0x3c]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x2c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x3c], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10171842
cmp eax, ecx
jne 0x1017182a
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x2c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10171839
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
shr ebx, 0x10
mov dword [ebp - 0x3c], ebx
cmp eax, ecx
jne 0x1017186d
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
mov dword [ebp - 0x2c], esi
test esi, esi
je 0x10171884
mov ecx, dword [ebp - 0x3c]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x2c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x3c], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x101718d0
cmp eax, ecx
jne 0x101718b8
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x2c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x101718c7
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
shr ebx, 8
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x101718fe
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
mov dword [ebp - 0x2c], esi
test esi, esi
je 0x10171915
mov ecx, dword [ebp - 0x3c]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x2c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x3c], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10171961
cmp eax, ecx
jne 0x10171949
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x2c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10171958
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x10171980
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x1017198c
mov ecx, dword [ebp - 0x30]
mov byte [esi + eax], cl
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x30], 0xff
mov dword [edi + 0x18], ecx
jne 0x101719c5
cmp ecx, dword [edi + 0x10]
jne 0x101719b8
mov eax, dword [edi]
push ecx
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
test eax, eax
je 0x101719c2
mov byte [eax + ecx], 0
inc dword [edi + 0x18]
mov edi, dword [ebp - 0x44]
mov ecx, 0x20
sub ecx, edi
mov eax, dword [edi*4 + 0x101ef480]
and eax, dword [ebp - 0x14]
shl eax, cl
mov edx, dword [ebp - 0x10]
lea esi, [ebx + 0xbc38]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [edx], edi
mov dword [edx + 4], ecx
mov ecx, esi
call fcn.101891a0
test edx, edx
jne 0x10171a06
test eax, eax
je 0x10171a66
movzx ecx, byte [ebx + 0xbc55]
mov al, byte [ecx + ebx + 0xbc50]
cmp al, byte [ecx + ebx + 0xbc4f]
jbe 0x10171a66
mov ecx, esi
call fcn.101891a0
mov ebx, eax
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 8]
push 0xffffffffffffffff
push 0xffffffffffffffff
movzx edi, byte [eax + 0xbc55]
add edi, eax
movzx eax, byte [edi + 0xbc50]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi + 0xbc4f]
cdq
sub eax, ecx
sbb edx, esi
mov esi, dword [ebp - 0x34]
add eax, ebx
mov ebx, dword [ebp - 8]
mov ecx, ebx
adc edx, dword [ebp - 0x4c]
push edx
push eax
push esi
call fcn.10174510
mov ecx, esi
call fcn.101891d0
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x40]
mov byte [ebx + 0xbc55], 1
mov byte [ebx + 0xbc51], 0
mov byte [ebp - 1], 0
jmp 0x10171ab5
movzx eax, byte [ebx + 0xbc55]
mov edx, dword [ebp - 0x14]
inc byte [eax + ebx + 0xbc50]
movzx ecx, byte [esi]
test edx, 0x800
je 0x10171acd
shr edx, cl
lea ecx, [ebx + 0xbc38]
test dl, 1
je 0x10171ada
call fcn.10189130
mov dword [ebp - 0x20], esi
mov ecx, dword [ebp + 8]
inc edi
mov dword [ebp - 0x40], edi
cmp edi, dword [ebp - 0x50]
jb 0x10170950
jmp 0x101708ea
shr edx, cl
lea ecx, [ebx + 0xbc38]
test dl, 1
je 0x10171ab0
call fcn.101893f0
jmp 0x10171ab5
mov al, byte [eax + 0x101eefe0]
mov esi, dword [ebp - 0x24]
mov edi, dword [ebx + 0xb24]
movzx eax, al
mov ecx, eax
mov dword [ebp - 0x10], eax
shl ecx, 4
movzx eax, byte [ecx + esi + 0xd50]
movzx ecx, word [esi + ecx*2 + 0xb50]
mov esi, dword [ebx + 0xbcd0]
cdq
mov dword [ebp - 0x2c], ecx
add esi, eax
mov ecx, dword [ebx + 0xbcd4]
adc ecx, edx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x28], ecx
jne 0x10171b51
cmp esi, 0x20
jae 0x10171b51
mov edx, dword [ebp - 0x2c]
mov ecx, 0x20
sub ecx, eax
shl edx, cl
mov ecx, dword [ebx + 0xbcd0]
shr edx, cl
or dword [ebx + 0xbccc], edx
mov edx, dword [ebx + 0xbccc]
jmp 0x10171dc4
mov eax, dword [ebp - 0x2c]
lea edx, [edi + 0x14]
add esi, 0xffffffe0
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x4c], esi
adc ecx, 0xffffffff
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x38]
and eax, dword [ecx*4 + 0x101ef480]
mov ecx, esi
mov dword [ebp - 0x2c], eax
shr eax, cl
or dword [ebx + 0xbccc], eax
mov eax, dword [ebx + 0xbccc]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x30], eax
shr eax, 0x18
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x50], eax
cmp eax, ecx
jne 0x10171bba
mov eax, dword [edi]
push dword [ebp - 0x50]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
lea edx, [edi + 0x14]
mov ecx, dword [edi + 0x10]
jmp 0x10171bbd
mov dword [ebp - 0x1c], edx
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10171bd4
mov ecx, dword [ebp - 0x40]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10171c20
cmp eax, ecx
jne 0x10171c08
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x10171c17
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ebx
shr dword [ebp - 0x34], 0x10
cmp eax, ecx
jne 0x10171c4c
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
mov dword [ebp - 0x40], esi
test esi, esi
je 0x10171c63
mov ecx, dword [ebp - 0x34]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x40], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x34], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10171caf
cmp eax, ecx
jne 0x10171c97
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x40]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x10171ca6
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ebx
shr dword [ebp - 0x34], 8
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x10171cde
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
mov dword [ebp - 0x40], esi
test esi, esi
je 0x10171cf5
mov ecx, dword [ebp - 0x34]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x40], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x34], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10171d41
cmp eax, ecx
jne 0x10171d29
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x40]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x10171d38
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x10171d60
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx]
test ecx, ecx
je 0x10171d6f
mov ebx, dword [ebp - 0x30]
mov byte [ecx + eax], bl
mov ebx, dword [ebp - 8]
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x30], 0xff
mov dword [edi + 0x18], ecx
jne 0x10171da8
cmp ecx, dword [edi + 0x10]
jne 0x10171d9b
mov eax, dword [edi]
push ecx
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
test eax, eax
je 0x10171da5
mov byte [eax + ecx], 0
inc dword [edi + 0x18]
mov esi, dword [ebp - 0x4c]
mov ecx, 0x20
sub ecx, esi
mov edx, dword [esi*4 + 0x101ef480]
and edx, dword [ebp - 0x2c]
shl edx, cl
mov dword [ebx + 0xbccc], edx
cmp dword [ebp - 0x10], 0
lea eax, [ebx + 0xbcd0]
mov ecx, dword [ebp - 0x28]
mov edi, esi
mov dword [eax], edi
mov edi, ecx
mov dword [eax + 4], edi
je 0x101720a5
movzx eax, word [ebx + 0xbc30]
mov edi, dword [ebx + 0xb24]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
add dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 8]
adc ecx, 0
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x18]
jne 0x10171e33
cmp ecx, 0x20
jae 0x10171e33
mov ecx, 0x20
sub ecx, dword [ebp - 0x10]
shl eax, cl
mov ecx, esi
shr eax, cl
or eax, edx
add esi, dword [ebp - 0x10]
mov dword [ebx + 0xbccc], eax
mov eax, dword [ebp - 0x28]
adc eax, 0
mov dword [ebx + 0xbcd0], esi
jmp 0x1017209f
mov esi, dword [ebp - 0x10]
add ecx, 0xffffffe0
mov dword [ebp - 0x18], ecx
adc dword [ebp - 0x30], 0xffffffff
and eax, dword [esi*4 + 0x101ef480]
mov dword [ebp - 0x4c], eax
shr eax, cl
or eax, edx
lea edx, [edi + 0x14]
mov dword [ebx + 0xbccc], eax
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x34], eax
shr eax, 0x18
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x1c], edx
cmp eax, ecx
jne 0x10171e91
mov eax, dword [edi]
push dword [ebp - 0x50]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
lea edx, [edi + 0x14]
mov ecx, dword [edi + 0x10]
jmp 0x10171e94
mov dword [ebp - 0x1c], edx
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10171eab
mov ecx, dword [ebp - 0x40]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10171ef7
cmp eax, ecx
jne 0x10171edf
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x10171eee
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x34]
shr ebx, 0x10
mov dword [ebp - 0x40], ebx
cmp eax, ecx
jne 0x10171f22
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10171f39
mov ecx, dword [ebp - 0x40]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10171f85
cmp eax, ecx
jne 0x10171f6d
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x10171f7c
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x34]
shr ebx, 8
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x10171fb3
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10171fca
mov ecx, dword [ebp - 0x40]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10172016
cmp eax, ecx
jne 0x10171ffe
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x1017200d
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x10172035
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x10172041
mov ecx, dword [ebp - 0x34]
mov byte [esi + eax], cl
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x34], 0xff
mov dword [edi + 0x18], ecx
jne 0x1017207a
cmp ecx, dword [edi + 0x10]
jne 0x1017206d
mov eax, dword [edi]
push ecx
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
test eax, eax
je 0x10172077
mov byte [eax + ecx], 0
inc dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov ecx, 0x20
sub ecx, edx
mov eax, dword [edx*4 + 0x101ef480]
and eax, dword [ebp - 0x4c]
shl eax, cl
mov dword [ebx + 0xbccc], eax
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0xbcd0], edx
mov dword [ebx + 0xbcd4], eax
lea esi, [ebx + 0xbc38]
mov ecx, esi
mov dword [ebp - 0xc], esi
call fcn.101891a0
test edx, edx
jne 0x101720bd
test eax, eax
je 0x1017211f
mov ecx, esi
call fcn.101891a0
movzx ecx, byte [ebx + 0xbc55]
mov edi, eax
mov esi, edx
movzx eax, byte [ecx + ebx + 0xbc50]
cdq
cmp esi, edx
jb 0x1017211f
ja 0x101720e2
cmp edi, eax
jbe 0x1017211f
lea ecx, [ebx + 0xbc38]
call fcn.101891a0
movzx ecx, byte [ebx + 0xbc55]
mov edi, eax
mov esi, edx
movzx eax, byte [ecx + ebx + 0xbc50]
mov ecx, ebx
cdq
sub edi, eax
lea eax, [ebx + 0xbc38]
sbb esi, edx
add edi, 0xffffffff
adc esi, 0xffffffff
push esi
push edi
push 0
push 0
push eax
call fcn.10174510
xor eax, eax
mov word [ebx + 0xbc30], ax
jmp 0x10172133
lea eax, [ebx + 0xbc38]
mov dword [ebp - 0xc], eax
movzx eax, byte [ebp - 1]
lea ecx, [ebx + 0xbcd0]
mov edi, eax
shr eax, 4
and edi, 0xf
mov dword [ebp - 0x2c], eax
shl edi, 4
inc edi
mov dword [ebp - 0x28], edi
test eax, eax
je 0x10172518
lea eax, [ebx + 0xbc50]
mov dword [ebp - 0x10], eax
jmp 0x10172176
lea ecx, [ebx + 0xbcd0]
mov edi, dword [ebp - 0x24]
movzx eax, byte [edi + 0xe40]
cdq
mov dword [ebp - 0x40], edx
mov esi, eax
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
movzx eax, word [edi + 0xd30]
mov edi, dword [ebx + 0xb24]
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x1c], ecx
mov ecx, esi
mov dword [ebp - 0x38], ebx
add ecx, edx
mov ebx, dword [ebp - 0x1c]
adc dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 8]
jne 0x101721d8
cmp ecx, 0x20
jae 0x101721d8
mov ecx, 0x20
sub ecx, esi
shl eax, cl
mov ecx, edx
shr eax, cl
or dword [ebx + 0xbccc], eax
add edx, esi
mov eax, dword [ebp - 0x1c]
adc eax, dword [ebp - 0x40]
mov dword [ebp - 0x1c], eax
jmp 0x10172444
mov edx, dword [ebp - 0x38]
add ecx, 0xffffffe0
mov dword [ebp - 0x4c], ecx
adc edx, 0xffffffff
and eax, dword [esi*4 + 0x101ef480]
mov dword [ebp - 0x44], eax
shr eax, cl
or dword [ebx + 0xbccc], eax
mov eax, dword [ebx + 0xbccc]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x30], eax
shr eax, 0x18
mov dword [ebp - 0x1c], edx
lea edx, [edi + 0x14]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x18], edx
cmp eax, ecx
jne 0x1017223c
mov eax, dword [edi]
push dword [ebp - 0x50]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
jmp 0x1017223f
mov dword [ebp - 0x18], edx
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10172256
mov ecx, dword [ebp - 0x40]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x101722a2
cmp eax, ecx
jne 0x1017228a
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10172299
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ebx
shr dword [ebp - 0x34], 0x10
cmp eax, ecx
jne 0x101722ce
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
mov dword [ebp - 0x40], esi
test esi, esi
je 0x101722e5
mov ecx, dword [ebp - 0x34]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x40], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x34], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10172331
cmp eax, ecx
jne 0x10172319
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x40]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x10172328
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ebx
shr dword [ebp - 0x34], 8
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x10172360
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
mov dword [ebp - 0x40], esi
test esi, esi
je 0x10172377
mov ecx, dword [ebp - 0x34]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x40], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x34], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x101723c3
cmp eax, ecx
jne 0x101723ab
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x40]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x101723ba
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x101723e2
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov esi, dword [edx]
test esi, esi
je 0x101723f0
mov ecx, dword [ebp - 0x30]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x30], 0xff
mov dword [edi + 0x18], ecx
jne 0x10172428
cmp ecx, dword [edi + 0x10]
jne 0x1017241b
mov eax, dword [edi]
push ecx
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
test eax, eax
je 0x10172425
mov byte [ecx + eax], 0
inc dword [edi + 0x18]
mov edx, dword [ebp - 0x4c]
mov ecx, 0x20
sub ecx, edx
mov eax, dword [edx*4 + 0x101ef480]
and eax, dword [ebp - 0x44]
shl eax, cl
mov dword [ebx + 0xbccc], eax
mov ecx, dword [ebp - 0x1c]
lea eax, [ebx + 0xbcd0]
mov dword [eax], edx
mov dword [eax + 4], ecx
lea ecx, [ebx + 0xbc38]
call fcn.101891a0
test edx, edx
jne 0x10172469
test eax, eax
je 0x10172508
mov ecx, dword [ebp - 0x10]
mov al, byte [ecx + 1]
cmp al, byte [ecx]
jbe 0x10172508
lea ecx, [ebx + 0xbc38]
call fcn.101891a0
mov edi, eax
mov ebx, edx
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 0xbc55]
movzx eax, byte [ecx + eax + 0xbc50]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 1]
cdq
mov dword [ebp - 0x38], eax
mov eax, edx
mov edx, dword [ebp - 0x38]
sub edx, ecx
mov ecx, dword [ebp - 0xc]
sbb eax, esi
add edx, edi
adc eax, ebx
add edx, 0xffffffff
mov dword [ebp - 0x38], edx
adc eax, 0xffffffff
mov dword [ebp - 0x50], eax
call fcn.101891a0
mov edi, eax
mov ebx, edx
mov eax, dword [ebp - 8]
push dword [ebp - 0x50]
push dword [ebp - 0x38]
movzx ecx, byte [eax + 0xbc55]
movzx eax, byte [ecx + eax + 0xbc50]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
cdq
sub eax, ecx
sbb edx, esi
add eax, edi
adc edx, ebx
mov ebx, dword [ebp - 8]
push edx
push eax
push dword [ebp - 0xc]
mov ecx, ebx
call fcn.10174510
inc dword [ebp - 0x10]
sub dword [ebp - 0x2c], 1
jne 0x10172170
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
movzx eax, byte [edi + ecx + 0xd50]
cdq
mov esi, eax
mov dword [ebp - 0x38], edx
movzx eax, word [ecx + edi*2 + 0xb50]
mov ecx, dword [ebx + 0xbcd0]
mov edi, dword [ebx + 0xb24]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebx + 0xbcd4]
mov dword [ebp - 0x3c], ecx
mov ecx, esi
add ecx, dword [ebp - 0x40]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x3c]
adc dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x24]
jne 0x1017258d
cmp ecx, 0x20
jae 0x1017258d
mov ecx, 0x20
sub ecx, esi
shl eax, cl
mov ecx, dword [ebp - 0x40]
shr eax, cl
mov ecx, eax
mov dword [ebp - 0x24], eax
or dword [ebx + 0xbccc], ecx
add esi, dword [ebp - 0x40]
mov eax, dword [ebx + 0xbccc]
mov edi, esi
adc edx, dword [ebp - 0x3c]
jmp 0x10172800
mov eax, dword [ebp - 0x38]
lea edx, [edi + 0x14]
add ecx, 0xffffffe0
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x4c], ecx
adc eax, 0xffffffff
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x24]
and eax, dword [esi*4 + 0x101ef480]
mov dword [ebp - 0x24], eax
shr eax, cl
or dword [ebx + 0xbccc], eax
mov eax, dword [ebx + 0xbccc]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x30], eax
shr eax, 0x18
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x50], eax
cmp eax, ecx
jne 0x101725f4
mov eax, dword [edi]
push dword [ebp - 0x50]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
lea edx, [edi + 0x14]
mov ecx, dword [edi + 0x10]
jmp 0x101725f7
mov dword [ebp - 0x1c], edx
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x1017260e
mov ecx, dword [ebp - 0x40]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x1017265a
cmp eax, ecx
jne 0x10172642
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x10172651
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ebx
shr dword [ebp - 0x34], 0x10
cmp eax, ecx
jne 0x10172686
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
mov dword [ebp - 0x40], esi
test esi, esi
je 0x1017269d
mov ecx, dword [ebp - 0x34]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x40], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x34], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x101726e9
cmp eax, ecx
jne 0x101726d1
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x40]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x101726e0
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ebx
shr dword [ebp - 0x34], 8
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x10172718
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
mov dword [ebp - 0x40], esi
test esi, esi
je 0x1017272f
mov ecx, dword [ebp - 0x34]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x40], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x34], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x1017277b
cmp eax, ecx
jne 0x10172763
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x40]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x10172772
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x1017279a
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx]
test esi, esi
je 0x101727a6
mov ecx, dword [ebp - 0x30]
mov byte [esi + eax], cl
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x30], 0xff
mov dword [edi + 0x18], ecx
jne 0x101727df
cmp ecx, dword [edi + 0x10]
jne 0x101727d2
mov eax, dword [edi]
push ecx
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
test eax, eax
je 0x101727dc
mov byte [eax + ecx], 0
inc dword [edi + 0x18]
mov edi, dword [ebp - 0x4c]
mov ecx, 0x20
mov edx, dword [ebp - 0x2c]
sub ecx, edi
mov esi, edi
mov eax, dword [edi*4 + 0x101ef480]
and eax, dword [ebp - 0x24]
shl eax, cl
mov dword [ebx + 0xbccc], eax
mov dword [ebp - 0x38], eax
mov ecx, edx
mov dword [ebx + 0xbcd0], edi
lea eax, [ebx + 0xbcd0]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x20]
mov edi, dword [ebx + 0xb24]
mov cl, byte [eax]
mov eax, edx
shr dword [ebp - 0x14], cl
mov ecx, esi
add ecx, 1
adc eax, 0
mov dword [ebp - 0x50], eax
jne 0x10172850
cmp ecx, 0x20
jae 0x10172850
mov eax, dword [ebp - 0x14]
mov edi, esi
add edi, 1
mov ecx, esi
adc edx, 0
shl eax, 0x1f
shr eax, cl
or eax, dword [ebp - 0x38]
jmp 0x10172ab4
mov eax, dword [ebp - 0x14]
mov ecx, esi
add ecx, 0xffffffe1
mov dword [ebp - 0x4c], ecx
adc edx, 0xffffffff
and eax, dword [0x101ef484]
mov dword [ebp - 0x14], eax
shr eax, cl
or eax, dword [ebp - 0x38]
mov dword [ebx + 0xbccc], eax
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x34], eax
shr eax, 0x18
mov dword [ebp - 0x2c], edx
lea edx, [edi + 0x14]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x20], edx
cmp eax, ecx
jne 0x101728b2
mov eax, dword [edi]
push dword [ebp - 0x50]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
lea edx, [edi + 0x14]
mov ecx, dword [edi + 0x10]
jmp 0x101728b5
mov dword [ebp - 0x20], edx
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x101728cc
mov ecx, dword [ebp - 0x40]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10172918
cmp eax, ecx
jne 0x10172900
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x1017290f
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x34]
shr ebx, 0x10
mov dword [ebp - 0x40], ebx
cmp eax, ecx
jne 0x10172943
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x1017295a
mov ecx, dword [ebp - 0x40]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x101729a6
cmp eax, ecx
jne 0x1017298e
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x1017299d
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x34]
shr ebx, 8
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x101729d4
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x101729eb
mov ecx, dword [ebp - 0x40]
mov byte [esi + eax], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10172a37
cmp eax, ecx
jne 0x10172a1f
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x10172a2e
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x10172a56
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x10172a62
mov ecx, dword [ebp - 0x34]
mov byte [esi + eax], cl
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x34], 0xff
mov dword [edi + 0x18], ecx
jne 0x10172a9b
cmp ecx, dword [edi + 0x10]
jne 0x10172a8e
mov eax, dword [edi]
push ecx
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx]
test eax, eax
je 0x10172a98
mov byte [eax + ecx], 0
inc dword [edi + 0x18]
mov edi, dword [ebp - 0x4c]
mov ecx, 0x20
mov edx, dword [ebp - 0x2c]
sub ecx, edi
mov eax, dword [edi*4 + 0x101ef480]
and eax, dword [ebp - 0x14]
shl eax, cl
mov dword [ebp - 0x14], eax
lea esi, [ebx + 0xbcd0]
mov ecx, dword [ebp - 0x14]
lea eax, [ebx + 0xbccc]
mov dword [eax], ecx
mov dword [esi], edi
mov dword [esi + 4], edx
movzx ecx, byte [ebx + 0xbc55]
mov al, byte [ecx + ebx + 0xbc50]
cmp al, byte [ecx + ebx + 0xbc4f]
jbe 0x10172b2d
mov ecx, dword [ebp - 0xc]
call fcn.101891a0
mov ebx, eax
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 8]
push 0xffffffffffffffff
push 0xffffffffffffffff
movzx edi, byte [eax + 0xbc55]
add edi, eax
movzx eax, byte [edi + 0xbc50]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi + 0xbc4f]
cdq
sub eax, ecx
sbb edx, esi
add eax, ebx
mov ebx, dword [ebp - 8]
mov ecx, ebx
adc edx, dword [ebp - 0x50]
push edx
push eax
push dword [ebp - 0xc]
call fcn.10174510
lea ecx, [ebx + 0xbc38]
jmp 0x10173147
movzx esi, byte [esi]
lea eax, [esi + 1]
cmp ecx, eax
jbe 0x10172b74
mov ecx, esi
mov eax, edi
shr eax, cl
lea ecx, [ebx + 0xbc38]
and eax, 1
test edi, 0x800
je 0x10172b64
test eax, eax
jne 0x10172b6f
call fcn.101893f0
jmp 0x10172b74
test eax, eax
je 0x10172b6f
call fcn.101893f0
jmp 0x10172b74
call fcn.10189130
mov ax, word [ebx + 0xbc30]
mov ecx, 0x7fff
inc ax
mov word [ebx + 0xbc30], ax
cmp ax, cx
jne 0x1017314c
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebx + 0xb24]
movzx eax, byte [ecx + 0xe30]
cdq
mov dword [ebp - 0x38], eax
mov esi, edx
mov edx, dword [ebp - 0x38]
add edx, dword [ebx + 0xbcd0]
movzx eax, word [ecx + 0xd10]
adc esi, dword [ebx + 0xbcd4]
jne 0x10172be8
cmp edx, 0x20
jae 0x10172be8
mov ecx, 0x20
sub ecx, dword [ebp - 0x38]
shl eax, cl
mov ecx, dword [ebx + 0xbcd0]
shr eax, cl
or dword [ebx + 0xbccc], eax
mov eax, dword [ebx + 0xbccc]
jmp 0x10172e58
mov ecx, dword [ebp - 0x38]
add edx, 0xffffffe0
mov dword [ebp - 0x4c], edx
adc esi, 0xffffffff
mov dword [ebp - 0x2c], esi
and eax, dword [ecx*4 + 0x101ef480]
mov ecx, edx
mov dword [ebp - 0x44], eax
lea edx, [edi + 0x14]
shr eax, cl
or dword [ebx + 0xbccc], eax
mov eax, dword [ebx + 0xbccc]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x30], eax
shr eax, 0x18
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x20], edx
cmp eax, ecx
jne 0x10172c4e
mov eax, dword [edi]
push dword [ebp - 0x50]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
lea edx, [edi + 0x14]
mov ecx, dword [edi + 0x10]
jmp 0x10172c51
mov dword [ebp - 0x20], edx
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10172c68
mov ecx, dword [ebp - 0x40]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10172cb4
cmp eax, ecx
jne 0x10172c9c
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x10172cab
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ebx
shr dword [ebp - 0x34], 0x10
cmp eax, ecx
jne 0x10172ce0
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
mov dword [ebp - 0x40], esi
test esi, esi
je 0x10172cf7
mov ecx, dword [ebp - 0x34]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x40], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x34], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10172d43
cmp eax, ecx
jne 0x10172d2b
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x40]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x10172d3a
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ebx
shr dword [ebp - 0x34], 8
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x10172d72
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
mov dword [ebp - 0x40], esi
test esi, esi
je 0x10172d89
mov ecx, dword [ebp - 0x34]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x40], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x34], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10172dd5
cmp eax, ecx
jne 0x10172dbd
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x40]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x10172dcc
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x10172df4
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x10172e00
mov ecx, dword [ebp - 0x30]
mov byte [eax + esi], cl
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x30], 0xff
mov dword [edi + 0x18], ecx
jne 0x10172e39
cmp ecx, dword [edi + 0x10]
jne 0x10172e2c
mov eax, dword [edi]
push ecx
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx]
test eax, eax
je 0x10172e36
mov byte [ecx + eax], 0
inc dword [edi + 0x18]
mov edx, dword [ebp - 0x4c]
mov ecx, 0x20
mov esi, dword [ebp - 0x2c]
sub ecx, edx
mov eax, dword [edx*4 + 0x101ef480]
and eax, dword [ebp - 0x44]
shl eax, cl
mov dword [ebx + 0xbccc], eax
mov dword [ebp - 0x38], eax
mov ecx, edx
lea eax, [ebx + 0xbcd0]
mov edi, esi
mov dword [eax], ecx
add ecx, 0xe
mov dword [eax + 4], edi
mov eax, esi
mov edi, dword [ebx + 0xb24]
adc eax, 0
mov dword [ebp - 0x50], eax
jne 0x10172e9b
cmp ecx, 0x20
jae 0x10172e9b
mov edi, edx
mov eax, 0xfffc0000
add edi, 0xe
mov ecx, edx
adc esi, 0
shr eax, cl
or eax, dword [ebp - 0x38]
jmp 0x10173100
mov eax, dword [0x101ef4b8]
mov ecx, edx
add ecx, 0xffffffee
lea edx, [edi + 0x14]
mov dword [ebp - 0x4c], ecx
adc esi, 0xffffffff
mov dword [ebp - 0x20], edx
and eax, 0x7fff
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x44], eax
shr eax, cl
or eax, dword [ebp - 0x38]
mov dword [ebx + 0xbccc], eax
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x34], eax
shr eax, 0x18
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x50], eax
cmp eax, ecx
jne 0x10172efe
mov eax, dword [edi]
push dword [ebp - 0x50]
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
lea edx, [edi + 0x14]
mov ecx, dword [edi + 0x10]
jmp 0x10172f01
mov dword [ebp - 0x20], edx
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10172f18
mov ecx, dword [ebp - 0x40]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10172f64
cmp eax, ecx
jne 0x10172f4c
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x10172f5b
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x34]
shr ebx, 0x10
mov dword [ebp - 0x40], ebx
cmp eax, ecx
jne 0x10172f8f
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10172fa6
mov ecx, dword [ebp - 0x40]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10172ff2
cmp eax, ecx
jne 0x10172fda
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x10172fe9
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x34]
shr ebx, 8
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 8]
cmp eax, ecx
jne 0x10173020
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x10173037
mov ecx, dword [ebp - 0x40]
mov byte [eax + esi], cl
mov esi, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x3c], esi
mov eax, dword [edi + 0x18]
inc eax
cmp byte [ebp - 0x40], 0xff
mov dword [ebp - 0x38], eax
mov dword [edi + 0x18], eax
jne 0x10173083
cmp eax, ecx
jne 0x1017306b
mov eax, dword [edi]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x1017307a
mov byte [eax + esi], 0
mov ecx, dword [edi + 0x10]
mov esi, dword [edx]
inc dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x101730a2
mov eax, dword [edi]
push dword [ebp - 0x38]
push esi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x20]
mov esi, dword [edx]
test esi, esi
je 0x101730ae
mov ecx, dword [ebp - 0x34]
mov byte [eax + esi], cl
mov ecx, dword [edi + 0x18]
inc ecx
cmp byte [ebp - 0x34], 0xff
mov dword [edi + 0x18], ecx
jne 0x101730e7
cmp ecx, dword [edi + 0x10]
jne 0x101730da
mov eax, dword [edi]
push ecx
push dword [edx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x101b0250]
mov ecx, edi
call esi
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0x20]
mov eax, dword [edx]
test eax, eax
je 0x101730e4
mov byte [ecx + eax], 0
inc dword [edi + 0x18]
mov edi, dword [ebp - 0x4c]
mov ecx, 0x20
mov esi, dword [ebp - 0x2c]
sub ecx, edi
mov eax, dword [edi*4 + 0x101ef480]
and eax, dword [ebp - 0x44]
shl eax, cl
mov dword [ebx + 0xbccc], eax
lea ecx, [ebx + 0xbccc]
lea edx, [ebx + 0xbcd0]
xor eax, eax
mov dword [edx], edi
mov dword [edx + 4], esi
lea esi, [ebx + 0xbc38]
mov ecx, esi
mov word [ebx + 0xbc30], ax
call fcn.101891a0
test edx, edx
jne 0x10173135
test eax, eax
je 0x10173145
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push esi
mov ecx, ebx
call fcn.10174510
mov ecx, esi
call fcn.101891d0
pop edi
mov byte [ebx + 0xbc55], 1
pop esi
mov byte [ebx + 0xbc51], 0
pop ebx
mov esp, ebp
pop ebp
ret 4