Function at 0x101af430
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101f24a8
mov eax, dword fs:[0]
push eax
sub esp, 0xed4
mov eax, dword [0x102289dc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0xe80], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xe28], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xdd0], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0xdc4], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0xe04], eax
mov dword [ebp - 0xe0c], esi
mov dword [ebp - 0xe2c], edx
mov eax, dword [eax]
cmp dword [eax + ecx*8 + 0x18], 0
lea edi, [eax + ecx*8]
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xe14], edi
mov dword [ebp - 0xc18], edx
mov dword [ebp - 0xc14], eax
je 0x101b1572
cmp dword [edi + 0x1c], 0
je 0x101b1572
lea eax, [ebp - 0xe0d]
mov byte [ebp - 0xdf9], 0
push eax
lea eax, [ebp - 0xde5]
mov byte [ebp - 0xde5], 0
push eax
lea eax, [ebp - 0xdf9]
mov byte [ebp - 0xe0d], 0
push eax
lea eax, [ebp - 0xdd4]
push eax
lea eax, [ebp - 0xc18]
push eax
push dword [ebp - 0xdd0]
lea eax, [ebp - 0xe24]
push eax
call fcn.101b15a0
add esp, 0x1c
mov edx, dword [ebp - 0xe20]
mov eax, edx
mov ecx, dword [ebp - 0xe24]
sub eax, ecx
sar eax, 5
mov dword [ebp - 4], 0
mov dword [ebp - 0xdd0], 0
test eax, eax
je 0x101af597
xor edi, edi
mov esi, edx
cmp dword [edi + ecx], 0xffffffff
lea edx, [edi + ecx]
jne 0x101af56a
mov ecx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
add eax, dword [ecx]
movzx eax, byte [eax]
mov dword [edx + 8], eax
mov esi, dword [ebp - 0xe20]
mov ecx, dword [ebp - 0xe24]
mov edx, dword [ebp - 0xdd0]
mov eax, esi
sub eax, ecx
inc edx
sar eax, 5
add edi, 0x20
mov dword [ebp - 0xdd0], edx
cmp edx, eax
jb 0x101af547
mov edi, dword [ebp - 0xe14]
mov esi, dword [ebp - 0xe0c]
mov edx, dword [ebp - 0xe20]
sub edx, ecx
sar edx, 5
cmp edx, 1
jne 0x101b00c7
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov dword [ebp - 0xdd0], eax
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0xe00], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0xdd4], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xdd0]
mov dword [ebp - 0xde0], eax
mov dword [ebp - 0xdec], edx
test ecx, ecx
jne 0x101af88c
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x1c]
imul ecx, eax
cmp byte [esi + 8], 0
mov dword [ebp - 0xdc4], ecx
jne 0x101af6af
mov eax, dword [ebp - 0xe0c]
mov esi, dword [esi + 0xc]
and esi, 0xfff
mov edi, esi
mov ecx, dword [eax + 0x14]
mov eax, dword [eax]
shl edx, cl
lea eax, [eax + edx*8]
mov edx, dword [ebp - 0xe0c]
mov ecx, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
shr edi, cl
and edx, esi
mov ecx, edi
mov dword [ebp - 0xddc], edi
movzx esi, byte [eax + ecx*8 + 1]
movzx edi, byte [eax + ecx*8]
mov dword [ebp - 0xdd4], esi
movzx esi, word [eax + ecx*8 + 2]
cmp edx, edi
jb 0x101af651
mov ax, word [eax + ecx*8 + 6]
xor ax, si
movzx eax, ax
jmp 0x101af653
mov eax, esi
mov esi, dword [ebp - 0xe0c]
cmp edx, edi
mov edi, dword [ebp - 0xe14]
cmovae ecx, dword [ebp - 0xdd4]
mov dword [ebp - 0xddc], ecx
mov ecx, 0x1000
cmp ax, cx
je 0x101af680
mov edx, dword [ebp - 0xdec]
jmp 0x101af6ac
mov ecx, dword [ebp - 0xdec]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov edx, dword [ebp - 0xddc]
cmp dword [eax + ecx*8 + 4], edx
mov edx, dword [ebp - 0xdec]
jbe 0x101af6ac
mov eax, dword [ebp - 0xddc]
cmp eax, dword [esi + 0x3c]
jb 0x101af750
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0xdcc], 0
test eax, eax
je 0x101b0077
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x10]
imul eax, dword [ebp - 0xdcc]
mov dword [ebp - 0xdc4], 0
add eax, dword [edi + 0x14]
mov dword [ebp - 0xdd4], eax
test ecx, ecx
je 0x101af72f
push dword [ebp - 0xe28]
mov ecx, esi
push edx
call fcn.100e0e80
mov edx, dword [ebp - 0xdd4]
mov ecx, eax
not ecx
shr eax, 1
and ecx, 1
dec ecx
xor ecx, eax
mov eax, dword [ebp - 0xdc4]
imul ecx, dword [ebp - 0xde0]
add ecx, dword [ebp - 0xe00]
mov dword [edx + eax*4], ecx
inc eax
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 0xdec]
mov dword [ebp - 0xdc4], eax
cmp eax, ecx
jb 0x101af6e5
mov eax, dword [ebp - 0xdcc]
mov edx, dword [ebp - 0xdec]
inc eax
mov dword [ebp - 0xdcc], eax
cmp eax, dword [edi + 0x1c]
jb 0x101af6c4
jmp 0x101b0077
cmp dword [esi + 0x24], 0
mov edx, dword [edi + 0x1c]
je 0x101af796
cmp dword [ebp - 0xdc4], 0
jbe 0x101af796
mov edx, dword [ebp - 0xddc]
mov edi, dword [ebp - 0xdc4]
nop
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
and ecx, 0xfffff
mov dword [eax + ecx*4], edx
inc dword [esi + 0x28]
sub edi, 1
jne 0x101af770
mov edi, dword [ebp - 0xe14]
mov eax, dword [ebp - 0xddc]
mov edx, dword [edi + 0x1c]
mov ecx, dword [ebp - 0xe24]
mov esi, eax
not esi
shr eax, 1
and esi, 1
mov dword [ebp - 0xdd0], 0
dec esi
xor esi, eax
imul esi, dword [ebp - 0xde0]
add esi, dword [ebp - 0xe00]
mov dword [ebp - 0xdd4], esi
test edx, edx
je 0x101b007d
lea ecx, [ebp - 0xdd4]
mov dword [ebp - 0xe2c], 0
mov eax, dword [ecx]
lea edx, [ebp - 0xe2c]
cmp eax, dword [edx]
je 0x101af805
cmp al, byte [edx]
jne 0x101af811
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x101af811
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x101af811
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x101af811
mov dword [ebp - 0xdc4], 0
jmp 0x101af81c
sbb eax, eax
or eax, 1
mov dword [ebp - 0xdc4], eax
xor eax, eax
nop
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0x18]
imul edx, eax
shl ecx, 2
add edx, dword [edi + 0x14]
cmp dword [ebp - 0xdc4], 0
jne 0x101af849
and ecx, 0xfffffffc
push ecx
push 0
push edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
jmp 0x101af875
lea eax, [ecx + edx]
mov dword [ebp - 0xdd4], 0
add ecx, 3
shr ecx, 2
cmp edx, eax
cmova ecx, dword [ebp - 0xdd4]
test ecx, ecx
je 0x101af875
mov eax, esi
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0xe14]
mov eax, dword [ebp - 0xdd0]
inc eax
mov dword [ebp - 0xdd0], eax
cmp eax, dword [edi + 0x1c]
jb 0x101af820
jmp 0x101b0077
cmp ecx, 5
jne 0x101afca1
mov eax, dword [ebp - 0xe00]
or eax, dword [ebp - 0xdd4]
jne 0x101afca1
cmp dword [ebp - 0xde0], 1
jne 0x101afca1
cmp dword [esi + 0x24], eax
je 0x101afb39
cmp byte [esi + 8], al
je 0x101afb39
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 4]
lea eax, [eax + eax*2]
mov ecx, dword [ecx + eax*4]
xor eax, eax
cmp byte [eax + ecx], 0
jne 0x101afb39
cmp word [eax + ecx + 2], 1
jne 0x101afb39
add eax, 4
cmp eax, 0x20
jb 0x101af8d4
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x10]
add ecx, ecx
cmp dword [eax + ecx*8 + 4], 1
ja 0x101afb39
xor ecx, ecx
xorps xmm0, xmm0
mov dword [ebp - 0xe08], ecx
mov dword [ebp - 0xdc8], ecx
movlpd qword [ebp - 0xe38], xmm0
mov dword [ebp - 0xde0], ecx
cmp dword [edi + 0x1c], ecx
jbe 0x101b0077
mov eax, dword [ebp - 0xe38]
mov dword [ebp - 0xdf8], eax
nop dword [eax]
mov eax, dword [edi + 0x10]
imul eax, dword [ebp - 0xde0]
add eax, dword [edi + 0x14]
cmp dword [ebp - 0xde0], 0
mov dword [ebp - 0xdd4], eax
je 0x101af989
mov eax, dword [ebp - 0xde0]
dec eax
imul eax, dword [edi + 0x10]
add eax, dword [edi + 0x14]
mov dword [ebp - 0xde4], eax
lea edx, [eax - 4]
mov eax, dword [eax]
mov dword [ebp - 0xdd8], edx
mov edx, dword [ebp - 0xdec]
mov dword [ebp - 0xdc4], eax
jmp 0x101af9a2
add eax, 0xfffffffc
mov dword [ebp - 0xdc4], 0
mov dword [ebp - 0xde4], eax
mov dword [ebp - 0xdd8], eax
test ecx, ecx
jne 0x101af9e3
lea eax, [ebp - 0xe08]
mov ecx, esi
push eax
lea eax, [ebp - 0xdc8]
push eax
push dword [ebp - 0xe28]
push edx
call fcn.101b3970
mov eax, dword [ebp - 0xdc8]
mov ecx, eax
not ecx
shr eax, 1
and ecx, 1
dec ecx
xor eax, ecx
mov ecx, dword [ebp - 0xe08]
cdq
mov dword [ebp - 0xdf8], eax
jmp 0x101af9f0
mov eax, dword [ebp - 0xdf8]
dec ecx
mov dword [ebp - 0xe08], ecx
mov edx, dword [ebp - 0xdd4]
add eax, dword [ebp - 0xdc4]
mov dword [ebp - 0xdc4], 1
mov dword [edx], eax
cmp dword [edi + 0x18], 1
jbe 0x101afb18
mov eax, dword [ebp - 0xde4]
lea ecx, [edx + 4]
mov esi, dword [ebp - 0xdd8]
sub esi, eax
mov dword [ebp - 0xdd0], ecx
sub eax, edx
mov dword [ebp - 0xdd8], esi
mov dword [ebp - 0xde4], eax
jmp 0x101afa46
mov esi, dword [ebp - 0xdd8]
add eax, ecx
mov ecx, dword [ecx - 4]
mov esi, dword [eax + esi]
mov eax, dword [eax]
cmp ecx, eax
mov edx, eax
mov dword [ebp - 0xdf4], eax
cmovl edx, ecx
cmp eax, ecx
cmovl eax, ecx
sub dword [ebp - 0xdf4], esi
add dword [ebp - 0xdf4], ecx
cmp esi, edx
mov ecx, dword [ebp - 0xdf4]
cmovl ecx, eax
cmp esi, eax
mov eax, dword [ebp - 0xe08]
mov esi, dword [ebp - 0xe0c]
cmovg ecx, edx
mov dword [ebp - 0xdf4], ecx
test eax, eax
jne 0x101afad6
lea eax, [ebp - 0xe08]
mov ecx, esi
push eax
lea eax, [ebp - 0xdc8]
push eax
push dword [ebp - 0xe28]
push dword [ebp - 0xdec]
call fcn.101b3970
mov ecx, dword [ebp - 0xdc8]
mov eax, ecx
not eax
shr ecx, 1
and eax, 1
dec eax
xor eax, ecx
mov ecx, dword [ebp - 0xdf4]
cdq
mov dword [ebp - 0xdf8], eax
jmp 0x101afae3
dec eax
mov dword [ebp - 0xe08], eax
mov eax, dword [ebp - 0xdf8]
add eax, ecx
mov ecx, dword [ebp - 0xdd0]
mov dword [ecx], eax
add ecx, 4
mov eax, dword [ebp - 0xdc4]
inc eax
mov dword [ebp - 0xdd0], ecx
cmp eax, dword [edi + 0x18]
mov dword [ebp - 0xdc4], eax
mov eax, dword [ebp - 0xde4]
jb 0x101afa40
mov ecx, dword [ebp - 0xe08]
mov eax, dword [ebp - 0xde0]
mov edx, dword [ebp - 0xdec]
inc eax
mov dword [ebp - 0xde0], eax
cmp eax, dword [edi + 0x1c]
jb 0x101af940
jmp 0x101b0077
mov edx, dword [edi + 0x10]
xor eax, eax
shr edx, 2
mov dword [ebp - 0xdc8], edx
mov dword [ebp - 0xdf8], eax
cmp dword [edi + 0x1c], eax
jbe 0x101b0077
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0xdc4], ecx
nop
mov ecx, dword [edi + 0x10]
xor esi, esi
imul ecx, eax
mov dword [ebp - 0xdd0], esi
add ecx, dword [edi + 0x14]
mov dword [ebp - 0xdd8], ecx
cmp dword [ebp - 0xdc4], esi
jbe 0x101afc8c
test esi, esi
je 0x101afba4
mov edx, dword [ecx + esi*4 - 4]
test eax, eax
je 0x101afbd0
mov edi, dword [ebp - 0xdc8]
mov eax, esi
sub eax, edi
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0xdf8]
jmp 0x101afbd8
test eax, eax
je 0x101afbce
mov edi, dword [ebp - 0xdc8]
lea eax, [edx*4]
sub ecx, eax
mov eax, esi
sub eax, edi
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xdd8]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0xdf8]
jmp 0x101afbd8
xor edx, edx
mov edi, dword [ebp - 0xdc8]
mov ecx, edx
test esi, esi
je 0x101afbf6
test eax, eax
je 0x101afbf6
mov eax, esi
mov esi, dword [ebp - 0xdd8]
sub eax, edi
mov eax, dword [esi + eax*4 - 4]
mov dword [ebp - 0xdc4], eax
jmp 0x101afbfe
mov eax, edx
mov dword [ebp - 0xdc4], edx
push dword [ebp - 0xe28]
cmp edx, ecx
mov edi, ecx
push dword [ebp - 0xdec]
mov esi, ecx
cmovl edi, edx
cmovg esi, edx
sub ecx, eax
add ecx, edx
cmp eax, edi
cmovl ecx, esi
mov dword [ebp - 0xdd4], ecx
mov ecx, dword [ebp - 0xe0c]
call fcn.100e0e80
mov edx, dword [ebp - 0xdc8]
mov ecx, eax
not ecx
shr eax, 1
and ecx, 1
dec ecx
xor ecx, eax
cmp dword [ebp - 0xdc4], esi
mov eax, dword [ebp - 0xdd4]
mov esi, dword [ebp - 0xdd0]
cmovg eax, edi
mov edi, dword [ebp - 0xe14]
add ecx, eax
mov eax, dword [ebp - 0xdd8]
mov dword [eax + esi*4], ecx
inc esi
mov eax, dword [edi + 0x18]
cmp esi, eax
mov ecx, dword [ebp - 0xdd8]
mov dword [ebp - 0xdc4], eax
mov eax, dword [ebp - 0xdf8]
mov dword [ebp - 0xdd0], esi
jb 0x101afb83
inc eax
mov dword [ebp - 0xdf8], eax
cmp eax, dword [edi + 0x1c]
jb 0x101afb60
jmp 0x101b0077
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x1c]
shr eax, 2
mov dword [ebp - 0xe04], eax
cmp ecx, 6
je 0x101afdb7
xor ecx, ecx
mov dword [ebp - 0xdcc], ecx
test edx, edx
je 0x101b0077
mov edx, dword [edi + 0x18]
nop dword [eax]
mov eax, dword [edi + 0x10]
imul eax, ecx
xor ecx, ecx
mov dword [ebp - 0xdc4], ecx
add eax, dword [edi + 0x14]
mov dword [ebp - 0xdf0], eax
test edx, edx
je 0x101afd9c
nop
push 0
push 0
push 0
push 0
push dword [ebp - 0xdd0]
push dword [ebp - 0xdcc]
push ecx
push dword [ebp - 0xe04]
push eax
push edx
lea eax, [ebp - 0xec8]
push 0
push eax
call fcn.10087bd0
add esp, 0x30
mov ecx, esi
movups xmm0, xmmword [eax]
push dword [ebp - 0xe28]
movups xmmword [ebp - 0xe74], xmm0
movq xmm0, qword [eax + 0x10]
push dword [ebp - 0xdec]
movq qword [ebp - 0xeb8], xmm0
call fcn.100e0e80
movups xmm0, xmmword [ebp - 0xe74]
mov ecx, eax
shr eax, 1
not ecx
and ecx, 1
psrldq xmm0, 8
dec ecx
xor ecx, eax
movd eax, xmm0
imul ecx, dword [ebp - 0xde0]
add ecx, eax
mov eax, dword [ebp - 0xdf0]
add ecx, dword [ebp - 0xe00]
mov dword [eax], ecx
add eax, 4
mov ecx, dword [ebp - 0xdc4]
mov edx, dword [edi + 0x18]
inc ecx
mov dword [ebp - 0xdc4], ecx
mov dword [ebp - 0xdf0], eax
cmp ecx, edx
jb 0x101afcf0
mov ecx, dword [ebp - 0xdcc]
inc ecx
mov dword [ebp - 0xdcc], ecx
cmp ecx, dword [edi + 0x1c]
jb 0x101afcd0
jmp 0x101b0077
push edx
push dword [edi + 0x18]
sub esp, 0x34
mov ecx, esp
push dword [ebp - 0xdc4]
call fcn.100c82d0
lea ecx, [ebp - 0xdc0]
call fcn.1008b590
xor ecx, ecx
mov byte [ebp - 4], 1
mov dword [ebp - 0xdc8], ecx
cmp dword [edi + 0x1c], ecx
jbe 0x101b006c
mov edx, dword [edi + 0x18]
nop
mov eax, dword [edi + 0x10]
imul eax, ecx
xor ecx, ecx
mov dword [ebp - 0xdd8], ecx
add eax, dword [edi + 0x14]
mov dword [ebp - 0xdf0], eax
test edx, edx
je 0x101b0056
mov esi, dword [ebp - 0xdc8]
and esi, 1
mov dword [ebp - 0xdc4], esi
mov esi, dword [ebp - 0xe0c]
push 0
lea edi, [ebp - 0xdc0]
push edi
push 0
push 0
push 6
push dword [ebp - 0xdc8]
push ecx
push dword [ebp - 0xe04]
push eax
push edx
lea eax, [ebp - 0xec8]
push 0
push eax
call fcn.10087330
add esp, 0x30
mov ecx, esi
movups xmm0, xmmword [eax]
push dword [ebp - 0xe28]
movups xmmword [ebp - 0xe74], xmm0
movq xmm0, qword [eax + 0x10]
push dword [ebp - 0xdec]
movq qword [ebp - 0xeb8], xmm0
call fcn.100e0e80
movups xmm0, xmmword [ebp - 0xe74]
mov ecx, eax
mov edi, dword [ebp - 0xe14]
shr eax, 1
not ecx
and ecx, 1
psrldq xmm0, 8
dec ecx
xor ecx, eax
movd eax, xmm0
imul ecx, dword [ebp - 0xde0]
add ecx, eax
mov eax, dword [ebp - 0xdf0]
add ecx, dword [ebp - 0xe00]
mov dword [eax], ecx
mov eax, ecx
mov esi, dword [edi + 0x18]
mov ecx, dword [ebp - 0xda0]
add esi, 2
cdq
mov edi, eax
mov dword [ebp - 0xddc], esi
xor eax, eax
shld edx, edi, 3
shl edi, 3
cmp dword [ebp - 0xdc4], eax
mov dword [ebp - 0xdd4], edx
cmove eax, esi
mov esi, dword [ebp - 0xdd8]
add esi, eax
sub ecx, edi
mov eax, dword [ebp - 0xd68]
mov dword [eax + esi*4], ecx
mov ecx, dword [ebp - 0xdc0]
mov eax, dword [ebp - 0xdbc]
shl esi, 2
sub ecx, edi
mov dword [ebp - 0xdcc], esi
sbb eax, edx
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xddc]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd98]
mov dword [eax + esi], ecx
xor eax, eax
cmp dword [ebp - 0xdc4], eax
cmove edx, eax
mov eax, dword [ebp - 0xd98]
add edx, dword [ebp - 0xdd8]
shl edx, 2
mov dword [ebp - 0xddc], edx
add dword [edx + eax + 4], ecx
mov ecx, dword [ebp - 0xdb8]
mov eax, dword [ebp - 0xdb4]
sub ecx, edi
mov esi, dword [ebp - 0xdd4]
sbb eax, esi
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdcc]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd8c]
mov dword [eax + edx], ecx
mov eax, dword [ebp - 0xd8c]
mov edx, dword [ebp - 0xddc]
add dword [edx + eax + 4], ecx
mov ecx, dword [ebp - 0xdb0]
mov eax, dword [ebp - 0xdac]
sub ecx, edi
sbb eax, esi
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdcc]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd80]
mov dword [eax + edx], ecx
mov eax, dword [ebp - 0xd80]
mov edx, dword [ebp - 0xddc]
add dword [edx + eax + 4], ecx
mov ecx, dword [ebp - 0xda8]
mov eax, dword [ebp - 0xda4]
sub ecx, edi
mov edi, dword [ebp - 0xe14]
sbb eax, esi
mov esi, dword [ebp - 0xe0c]
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdcc]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd74]
mov dword [eax + edx], ecx
mov eax, dword [ebp - 0xd74]
mov edx, dword [ebp - 0xddc]
add dword [edx + eax + 4], ecx
mov ecx, dword [ebp - 0xdd8]
mov eax, dword [ebp - 0xdf0]
inc ecx
mov edx, dword [edi + 0x18]
add eax, 4
mov dword [ebp - 0xdd8], ecx
mov dword [ebp - 0xdf0], eax
cmp ecx, edx
jb 0x101afe24
mov ecx, dword [ebp - 0xdc8]
inc ecx
mov dword [ebp - 0xdc8], ecx
cmp ecx, dword [edi + 0x1c]
jb 0x101afdf0
lea ecx, [ebp - 0xdc0]
call fcn.1008be00
mov ecx, dword [ebp - 0xe24]
mov esi, dword [ebp - 0xe80]
mov dword [esi], 0
test ecx, ecx
je 0x101b00c0
mov edx, dword [ebp - 0xe1c]
mov eax, ecx
sub edx, ecx
and edx, 0xffffffe0
cmp edx, 0x1000
jb 0x101b00b6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x101b156c
push edx
push ecx
call fcn.101e8bf4
add esp, 8
mov eax, esi
jmp 0x101b157e
push 0x400
lea eax, [ebp - 0x810]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x400
lea eax, [ebp - 0x410]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x400
lea eax, [ebp - 0xc10]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov dl, byte [ebp - 0xde5]
add esp, 0x24
mov byte [ebp - 0xde5], dl
test dl, dl
je 0x101b013d
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0xc10]
push eax
lea eax, [ebp - 0x810]
push eax
lea eax, [ebp - 0xe24]
push eax
call fcn.101aee20
add esp, 0x10
mov byte [ebp - 0xde5], al
mov al, byte [ebp - 0xe0d]
mov ecx, dword [ebp - 0xe24]
test al, al
je 0x101b03d4
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0xc10]
push eax
lea eax, [ebp - 0x810]
push eax
lea eax, [ebp - 0xe24]
push eax
call fcn.101aee20
mov ecx, dword [ebp - 0xe24]
add esp, 0x10
mov byte [ebp - 0xe0d], al
test al, al
je 0x101b03d4
mov edx, dword [edi + 0x10]
xor eax, eax
shr edx, 2
mov dword [ebp - 0xdf8], edx
mov dword [ebp - 0xddc], eax
cmp dword [edi + 0x1c], eax
jbe 0x101b152b
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0xdc4], ecx
nop
mov esi, dword [edi + 0x10]
xor ecx, ecx
imul esi, eax
mov dword [ebp - 0xdcc], ecx
add esi, dword [edi + 0x14]
mov dword [ebp - 0xdf0], esi
cmp dword [ebp - 0xdc4], ecx
jbe 0x101b03bf
test ecx, ecx
je 0x101b0213
cmp dword [ebp - 0xddc], 0
mov edx, dword [esi + ecx*4 - 4]
mov eax, edx
mov dword [ebp - 0xe00], edx
cdq
mov dword [ebp - 0xdd8], eax
mov dword [ebp - 0xdc8], edx
je 0x101b0280
mov eax, ecx
sub eax, dword [ebp - 0xdf8]
mov eax, dword [esi + eax*4]
cdq
mov esi, eax
mov eax, dword [ebp - 0xdd8]
jmp 0x101b0282
test eax, eax
je 0x101b0255
lea eax, [edx*4]
mov ecx, esi
sub ecx, eax
mov edx, dword [ecx]
mov eax, edx
mov ecx, dword [ebp - 0xdcc]
mov dword [ebp - 0xe00], edx
cdq
mov dword [ebp - 0xdd8], eax
mov eax, ecx
sub eax, dword [ebp - 0xdf8]
mov dword [ebp - 0xdc8], edx
mov eax, dword [esi + eax*4]
cdq
mov esi, eax
mov eax, dword [ebp - 0xdd8]
jmp 0x101b0282
xor edx, edx
xorps xmm0, xmm0
movlpd qword [ebp - 0xe38], xmm0
mov eax, dword [ebp - 0xe38]
mov dword [ebp - 0xe00], edx
mov edx, dword [ebp - 0xe34]
mov dword [ebp - 0xdc8], edx
mov dword [ebp - 0xdd8], eax
mov esi, eax
mov dword [ebp - 0xdc4], edx
test ecx, ecx
je 0x101b02b6
cmp dword [ebp - 0xddc], 0
je 0x101b02b6
mov eax, ecx
mov ecx, dword [ebp - 0xdf0]
sub eax, dword [ebp - 0xdf8]
mov eax, dword [ecx + eax*4 - 4]
cdq
mov dword [ebp - 0xde0], eax
mov dword [ebp - 0xdd0], edx
jmp 0x101b02c8
mov dword [ebp - 0xde0], eax
mov eax, dword [ebp - 0xdc8]
mov dword [ebp - 0xdd0], eax
mov edx, dword [ebp - 0xe00]
mov ecx, esi
cmp edx, esi
mov eax, esi
cmovg eax, edx
cmovl ecx, edx
sub edx, dword [ebp - 0xde0]
add edx, esi
cmp dword [ebp - 0xde0], ecx
cmovl edx, eax
cmp dword [ebp - 0xde0], eax
mov eax, dword [ebp - 0xdc4]
cmovg edx, ecx
sub esi, dword [ebp - 0xde0]
mov dword [ebp - 0xe00], edx
sbb eax, dword [ebp - 0xdd0]
add esi, dword [ebp - 0xdd8]
adc eax, dword [ebp - 0xdc8]
cmp eax, 0xffffffff
jl 0x101b033c
jg 0x101b0327
cmp esi, 0xfffffe00
jbe 0x101b033c
test eax, eax
jl 0x101b034b
jg 0x101b0335
cmp esi, 0x1ff
jbe 0x101b034b
mov esi, 0x1ff
jmp 0x101b034b
mov esi, 0xfffffe00
mov dword [ebp - 0xe84], 0xffffffff
push dword [ebp - 0xe28]
movzx eax, byte [ebp + esi - 0x610]
mov ecx, dword [ebp - 0xe0c]
push eax
call fcn.100e0e80
mov ecx, eax
mov edx, dword [ebp - 0xdf8]
not ecx
shr eax, 1
and ecx, 1
dec ecx
xor ecx, eax
movsx eax, byte [ebp + esi - 0x210]
imul ecx, eax
movsx eax, byte [ebp + esi - 0xa10]
mov esi, dword [ebp - 0xdf0]
add ecx, dword [ebp - 0xe00]
add eax, ecx
mov ecx, dword [ebp - 0xdcc]
mov dword [esi + ecx*4], eax
inc ecx
mov eax, dword [edi + 0x18]
cmp ecx, eax
mov dword [ebp - 0xdc4], eax
mov eax, dword [ebp - 0xddc]
mov dword [ebp - 0xdcc], ecx
jb 0x101b01d3
inc eax
mov dword [ebp - 0xddc], eax
cmp eax, dword [edi + 0x1c]
jb 0x101b01b0
jmp 0x101b1525
cmp byte [ebp - 0xde5], 0
je 0x101b0fed
push dword [edi + 0x1c]
mov eax, dword [edi + 0x10]
push dword [edi + 0x18]
shr eax, 2
sub esp, 0x34
mov dword [ebp - 0xe5c], eax
mov ecx, esp
push dword [ebp - 0xdc4]
call fcn.100c82d0
lea ecx, [ebp - 0xdc0]
call fcn.1008b590
push 4
mov byte [ebp - 4], 2
call fcn.101e8bc4
add esp, 4
mov dword [ebp - 0xe70], eax
lea esi, [eax + 4]
mov dword [eax], 0
mov dword [ebp - 0xe68], esi
mov dword [ebp - 0xe6c], esi
xor edx, edx
mov byte [ebp - 4], 3
mov dword [ebp - 0xddc], edx
cmp dword [edi + 0x1c], edx
jbe 0x101b0fac
nop dword [eax]
mov eax, dword [edi + 0x10]
xor esi, esi
mov ecx, dword [edi + 0x18]
imul eax, edx
mov dword [ebp - 0xdd8], esi
mov dword [ebp - 0xdd0], ecx
add eax, dword [edi + 0x14]
mov dword [ebp - 0xde0], eax
test ecx, ecx
je 0x101b0f90
mov ecx, edx
mov dword [ebp - 0xe64], 0xfffffe00
and ecx, 1
mov dword [ebp - 0xdc4], ecx
nop dword [eax]
test esi, esi
je 0x101b04b0
cmp dword [ebp - 0xddc], 0
mov eax, dword [eax + esi*4 - 4]
cdq
mov dword [ebp - 0xdec], eax
mov dword [ebp - 0xdf4], edx
je 0x101b0521
jmp 0x101b04ce
test edx, edx
je 0x101b04fe
mov ecx, dword [ebp - 0xe5c]
shl ecx, 2
sub eax, ecx
mov eax, dword [eax]
cdq
mov dword [ebp - 0xdec], eax
mov dword [ebp - 0xdf4], edx
mov ecx, dword [ebp - 0xde0]
mov eax, esi
sub eax, dword [ebp - 0xe5c]
mov eax, dword [ecx + eax*4]
cdq
mov edi, eax
mov ecx, edx
mov eax, dword [ebp - 0xdec]
mov edx, dword [ebp - 0xdf4]
mov dword [ebp - 0xe3c], edi
mov dword [ebp - 0xe40], ecx
jmp 0x101b0531
xorps xmm0, xmm0
movlpd qword [ebp - 0xe38], xmm0
mov edx, dword [ebp - 0xe34]
mov eax, dword [ebp - 0xe38]
mov dword [ebp - 0xdf4], edx
mov dword [ebp - 0xdec], eax
mov edi, eax
mov dword [ebp - 0xe3c], eax
mov ecx, edx
mov dword [ebp - 0xe40], edx
test esi, esi
je 0x101b0551
cmp dword [ebp - 0xddc], 0
je 0x101b0551
mov edx, dword [ebp - 0xde0]
mov eax, esi
sub eax, dword [ebp - 0xe5c]
mov eax, dword [edx + eax*4 - 4]
cdq
mov dword [ebp - 0xe4c], eax
lea eax, [esi + 1]
mov dword [ebp - 0xe48], edx
mov dword [ebp - 0xe34], eax
cmp eax, dword [ebp - 0xdd0]
jae 0x101b0598
cmp dword [ebp - 0xddc], 0
je 0x101b0598
mov edx, dword [ebp - 0xde0]
mov eax, esi
sub eax, dword [ebp - 0xe5c]
mov eax, dword [edx + eax*4 + 4]
cdq
mov dword [ebp - 0xe30], eax
mov dword [ebp - 0xe08], edx
jmp 0x101b05a4
mov dword [ebp - 0xe30], edi
mov dword [ebp - 0xe08], ecx
cmp dword [ebp - 0xddc], 1
jbe 0x101b05d2
mov eax, dword [ebp - 0xe5c]
lea ecx, [eax + eax]
mov eax, esi
sub eax, ecx
mov ecx, dword [ebp - 0xde0]
mov eax, dword [ecx + eax*4]
cdq
mov dword [ebp - 0xe58], eax
mov dword [ebp - 0xe00], edx
jmp 0x101b05de
mov dword [ebp - 0xe58], edi
mov dword [ebp - 0xe00], ecx
mov edx, dword [ebp - 0xdd0]
xor ecx, ecx
mov edi, dword [ebp - 0xdc4]
test edi, edi
lea eax, [edx + 2]
cmove ecx, eax
lea eax, [edx - 1]
mov dword [ebp - 0xdd4], ecx
lea ecx, [edx + 2]
add ecx, esi
test edi, edi
cmove ecx, esi
cmp esi, eax
jae 0x101b0616
lea eax, [ecx + 1]
mov dword [ebp - 0xe18], eax
jmp 0x101b061c
mov dword [ebp - 0xe18], ecx
test esi, esi
je 0x101b062b
lea eax, [ecx - 1]
mov dword [ebp - 0xe04], eax
jmp 0x101b0631
mov dword [ebp - 0xe04], ecx
lea edi, [ecx*4]
xor edx, edx
mov dword [ebp - 0xdf0], edi
lea esi, [ebp - 0xd98]
nop word [eax + eax]
mov eax, dword [esi]
mov ecx, dword [edi + eax]
mov edi, dword [ebp - 0xe18]
add ecx, dword [eax + edi*4]
mov edi, dword [ebp - 0xe04]
add ecx, dword [eax + edi*4]
xor eax, eax
mov dword [ebp - 0xe88], ecx
add ecx, 1
mov dword [ebp - 0xe84], eax
adc eax, eax
jne 0x101b0686
bsr ecx, ecx
mov eax, 0x3f
jmp 0x101b068e
bsr ecx, eax
mov eax, 0x1f
movq xmm1, qword [ebp - 0xe88]
sub eax, ecx
xor eax, 0x3f
mov edi, dword [ebp - 0xdf0]
xor ecx, ecx
add eax, 0xfffffffb
cmovns ecx, eax
add esi, 0xc
movd xmm0, ecx
psrlq xmm1, xmm0
movd eax, xmm1
mov eax, dword [ebp + eax*4 - 0xd28]
imul eax, dword [ebp + edx - 0xd38]
shr eax, cl
add eax, 4
mov dword [ebp + edx - 0xc28], eax
add edx, 4
cmp edx, 0x10
jb 0x101b0650
mov eax, dword [ebp - 0xdec]
shld dword [ebp - 0xdf4], eax, 3
mov edi, dword [ebp - 0xe3c]
shld dword [ebp - 0xe40], edi, 3
shl eax, 3
mov edx, dword [ebp - 0xe00]
mov dword [ebp - 0xdec], eax
mov eax, dword [ebp - 0xe30]
shld dword [ebp - 0xe08], eax, 3
mov esi, dword [ebp - 0xdd8]
shl eax, 3
mov dword [ebp - 0xe30], eax
mov eax, dword [ebp - 0xe4c]
shld dword [ebp - 0xe48], eax, 3
shl edi, 3
shl eax, 3
mov dword [ebp - 0xe4c], eax
mov eax, dword [ebp - 0xe58]
shld edx, eax, 3
mov dword [ebp - 0xe3c], edi
shl eax, 3
mov dword [ebp - 0xe00], edx
mov dword [ebp - 0xe58], eax
test esi, esi
jne 0x101b0768
xor eax, eax
jmp 0x101b077a
mov ecx, dword [ebp - 0xdd4]
mov eax, dword [ebp - 0xd68]
add ecx, esi
mov eax, dword [eax + ecx*4 - 4]
mov ecx, dword [ebp - 0xd68]
cdq
mov dword [ebp - 0xdd0], eax
mov eax, dword [ebp - 0xdf0]
mov dword [ebp - 0xdcc], edx
mov eax, dword [ecx + eax]
cdq
mov esi, eax
mov dword [ebp - 0xdc8], edx
mov eax, dword [ebp - 0xe04]
mov dword [ebp - 0xdf0], esi
mov eax, dword [ecx + eax*4]
cdq
mov dword [ebp - 0xdf8], eax
mov eax, esi
mov esi, dword [ebp - 0xdd0]
add eax, esi
mov dword [ebp - 0xe2c], eax
mov eax, dword [ebp - 0xdc8]
adc eax, dword [ebp - 0xdcc]
mov dword [ebp - 0xdd4], eax
mov eax, dword [ebp - 0xe18]
mov dword [ebp - 0xe44], edx
mov dword [ebp - 0xe50], esi
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0xdf0]
cdq
mov dword [ebp - 0xe04], eax
mov eax, dword [ebp - 0xdcc]
mov dword [ebp - 0xe54], eax
mov eax, dword [ebp - 0xdc8]
mov dword [ebp - 0xe18], edx
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
mov dword [ebp - 0xe60], ecx
sbb eax, edx
mov ecx, eax
mov eax, esi
mov dword [ebp - 0xde4], eax
mov eax, dword [ebp - 0xdcc]
cdq
xor eax, edx
xor dword [ebp - 0xde4], edx
sub dword [ebp - 0xde4], edx
sbb eax, edx
cmp ecx, eax
jl 0x101b086d
jg 0x101b0855
mov eax, dword [ebp - 0xe60]
cmp eax, dword [ebp - 0xde4]
jbe 0x101b086d
mov esi, dword [ebp - 0xdf0]
mov eax, dword [ebp - 0xdc8]
mov dword [ebp - 0xe50], esi
mov dword [ebp - 0xe54], eax
mov eax, dword [ebp - 0xe54]
mov ecx, esi
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
mov dword [ebp - 0xe60], ecx
sbb eax, edx
mov ecx, eax
mov eax, dword [ebp - 0xdf8]
mov dword [ebp - 0xde4], eax
mov eax, dword [ebp - 0xe44]
cdq
xor eax, edx
xor dword [ebp - 0xde4], edx
sub dword [ebp - 0xde4], edx
sbb eax, edx
cmp eax, ecx
jl 0x101b08d1
jg 0x101b08bd
mov eax, dword [ebp - 0xde4]
cmp eax, dword [ebp - 0xe60]
jbe 0x101b08d1
mov esi, dword [ebp - 0xdf8]
mov eax, dword [ebp - 0xe44]
mov dword [ebp - 0xe50], esi
jmp 0x101b08d7
mov eax, dword [ebp - 0xe54]
cdq
xor eax, edx
xor esi, edx
sub esi, edx
sbb eax, edx
mov ecx, eax
mov eax, dword [ebp - 0xe04]
mov dword [ebp - 0xde4], eax
mov eax, dword [ebp - 0xe18]
cdq
xor eax, edx
xor dword [ebp - 0xde4], edx
sub dword [ebp - 0xde4], edx
sbb eax, edx
cmp eax, ecx
jl 0x101b0927
jg 0x101b0913
cmp dword [ebp - 0xde4], esi
jbe 0x101b0927
mov ecx, dword [ebp - 0xe18]
mov eax, dword [ebp - 0xe04]
mov dword [ebp - 0xe78], ecx
jmp 0x101b092d
mov eax, dword [ebp - 0xe50]
mov ecx, dword [ebp - 0xe70]
mov esi, dword [ebp - 0xe04]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xe30]
mov eax, dword [ebp - 0xe08]
sub ecx, edi
sbb eax, dword [ebp - 0xe40]
add ecx, dword [ebp - 0xdec]
mov dword [ebp - 0xe78], ecx
adc eax, dword [ebp - 0xdf4]
add esi, dword [ebp - 0xe2c]
mov dword [ebp - 0xc14], eax
mov dword [ebp - 0xdbc], eax
mov eax, dword [ebp - 0xd54]
cdq
mov dword [ebp - 0xdc0], ecx
mov ecx, dword [ebp - 0xe18]
adc ecx, dword [ebp - 0xdd4]
push edx
push eax
push ecx
push esi
call fcn.101e97d0
mov esi, dword [ebp - 0xdd4]
mov ecx, edi
shrd eax, edx, 5
sar edx, 5
sub ecx, eax
mov eax, dword [ebp - 0xe40]
sbb eax, edx
mov dword [ebp - 0xde4], ecx
mov dword [ebp - 0xe54], eax
mov dword [ebp - 0xdb4], eax
mov eax, dword [ebp - 0xd50]
mov dword [ebp - 0xdb8], ecx
mov ecx, dword [ebp - 0xe2c]
add ecx, dword [ebp - 0xdf8]
cdq
adc esi, dword [ebp - 0xe44]
push edx
push eax
push esi
push ecx
call fcn.101e97d0
mov ecx, dword [ebp - 0xdec]
mov esi, dword [ebp - 0xe48]
shrd eax, edx, 5
sar edx, 5
sub ecx, eax
mov eax, dword [ebp - 0xdf4]
sbb eax, edx
mov dword [ebp - 0xe50], ecx
mov dword [ebp - 0xe2c], eax
mov dword [ebp - 0xdac], eax
mov eax, dword [ebp - 0xd3c]
mov dword [ebp - 0xdb0], ecx
mov ecx, dword [ebp - 0xe4c]
sub ecx, dword [ebp - 0xdec]
cdq
sbb esi, dword [ebp - 0xdf4]
push edx
push eax
push esi
push ecx
call fcn.101e97d0
mov ecx, dword [ebp - 0xe58]
mov esi, eax
sub ecx, dword [ebp - 0xe3c]
mov edi, edx
mov eax, dword [ebp - 0xe00]
sbb eax, dword [ebp - 0xe40]
mov dword [ebp - 0xe00], eax
mov eax, dword [ebp - 0xd40]
cdq
push edx
mov edx, dword [ebp - 0xe00]
push eax
push edx
push ecx
call fcn.101e97d0
add esi, eax
mov ecx, dword [ebp - 0xe18]
adc edi, edx
mov eax, dword [ebp - 0xd44]
push ecx
push dword [ebp - 0xe04]
cdq
push edx
push eax
call fcn.101e97d0
push dword [ebp - 0xe44]
add esi, eax
mov eax, dword [ebp - 0xd4c]
push dword [ebp - 0xdf8]
adc edi, edx
cdq
push edx
push eax
call fcn.101e97d0
push dword [ebp - 0xdc8]
add esi, eax
mov eax, dword [ebp - 0xd48]
push dword [ebp - 0xdf0]
adc edi, edx
cdq
push edx
push eax
call fcn.101e97d0
movups xmm1, xmmword [ebp - 0xc28]
mov ecx, dword [ebp - 0xe3c]
add esi, eax
mov eax, dword [ebp - 0xe40]
adc edi, edx
movaps xmm0, xmm1
shrd esi, edi, 5
psrldq xmm0, 4
sar edi, 5
sub ecx, esi
mov dword [ebp - 0xdd4], ecx
sbb eax, edi
mov dword [ebp - 0xda8], ecx
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
mov dword [ebp - 0xe60], eax
mov dword [ebp - 0xda4], eax
movd eax, xmm0
movaps xmm0, xmm1
movd edi, xmm1
psrldq xmm0, 0xc
push dword [ebp - 0xe60]
add ecx, edi
add ecx, eax
movd eax, xmm0
movaps xmm0, xmm1
psrldq xmm0, 4
add ecx, eax
movd esi, xmm0
bsr eax, ecx
movaps xmm0, xmm1
mov ecx, 0x1f
sub ecx, eax
psrldq xmm0, 8
xor ecx, 0x1f
psrldq xmm1, 0xc
add ecx, 0xfffffffc
movd edx, xmm0
movd eax, xmm1
shr edi, cl
shr edx, cl
shr eax, cl
shr esi, cl
mov dword [ebp - 0xe58], edi
mov dword [ebp - 0xe18], esi
lea ecx, [eax + edx]
mov dword [ebp - 0xe04], edx
add ecx, esi
add ecx, edi
mov dword [ebp - 0xe4c], ecx
shr ecx, 1
dec ecx
mov dword [ebp - 0xe48], ecx
push dword [ebp - 0xdd4]
push 0
push eax
call fcn.101e97d0
push dword [ebp - 0xe2c]
mov esi, eax
mov edi, edx
push dword [ebp - 0xe50]
push 0
push dword [ebp - 0xe04]
call fcn.101e97d0
push dword [ebp - 0xe54]
add esi, eax
push dword [ebp - 0xde4]
adc edi, edx
push 0
push dword [ebp - 0xe18]
call fcn.101e97d0
push dword [ebp - 0xc14]
add esi, eax
push dword [ebp - 0xe78]
adc edi, edx
push 0
push dword [ebp - 0xe58]
call fcn.101e97d0
mov ecx, dword [ebp - 0xe48]
add esi, eax
mov eax, 0
adc edi, edx
add ecx, esi
adc eax, edi
push eax
mov eax, dword [ebp - 0xe4c]
push ecx
push 0
push dword [ebp + eax*4 - 0xd2c]
call fcn.101e97d0
mov ecx, dword [ebp - 0xdf0]
mov edi, eax
mov eax, dword [ebp - 0xdf8]
mov esi, dword [ebp - 0xdc8]
xor eax, ecx
xor ecx, dword [ebp - 0xdd0]
xor dword [ebp - 0xe44], esi
or eax, ecx
xor esi, dword [ebp - 0xdcc]
mov ecx, dword [ebp - 0xe44]
shrd edi, edx, 0x18
sar edx, 0x18
or ecx, esi
mov dword [ebp - 0xda0], edi
mov dword [ebp - 0xd9c], edx
mov dword [ebp - 0xe78], ecx
jl 0x101b0c8a
jg 0x101b0d6c
test eax, eax
jne 0x101b0d6c
mov ecx, dword [ebp - 0xe40]
mov eax, dword [ebp - 0xe3c]
cmp dword [ebp - 0xe08], ecx
jg 0x101b0cba
jl 0x101b0caa
mov esi, dword [ebp - 0xe30]
cmp esi, eax
jae 0x101b0cc0
mov dword [ebp - 0xdc8], eax
mov esi, ecx
mov dword [ebp - 0xdd0], ecx
jmp 0x101b0cd2
mov esi, dword [ebp - 0xe30]
mov dword [ebp - 0xdc8], esi
mov esi, dword [ebp - 0xe08]
mov dword [ebp - 0xdd0], esi
cmp dword [ebp - 0xdf4], esi
mov esi, dword [ebp - 0xdec]
jg 0x101b0cea
jl 0x101b0d02
cmp esi, dword [ebp - 0xdc8]
jb 0x101b0d02
mov dword [ebp - 0xdc8], esi
mov esi, dword [ebp - 0xdf4]
mov dword [ebp - 0xdd0], esi
mov esi, dword [ebp - 0xdec]
cmp ecx, dword [ebp - 0xe08]
jg 0x101b0d14
jl 0x101b0d20
cmp eax, dword [ebp - 0xe30]
jb 0x101b0d20
mov eax, dword [ebp - 0xe30]
mov ecx, dword [ebp - 0xe08]
cmp ecx, dword [ebp - 0xdf4]
jg 0x101b0d2e
jl 0x101b0d36
cmp eax, esi
jb 0x101b0d36
mov ecx, dword [ebp - 0xdf4]
mov eax, esi
mov esi, dword [ebp - 0xdd0]
cmp edx, esi
jg 0x101b0d4a
jl 0x101b0d52
cmp edi, dword [ebp - 0xdc8]
jb 0x101b0d52
mov edi, dword [ebp - 0xdc8]
mov edx, esi
cmp ecx, edx
jg 0x101b0d5c
jl 0x101b0d60
cmp eax, edi
jb 0x101b0d60
mov edi, eax
mov edx, ecx
mov dword [ebp - 0xda0], edi
mov dword [ebp - 0xd9c], edx
mov ecx, dword [ebp - 0xe70]
lea eax, [ebp - 0xe64]
push dword [ebp - 0xe28]
add edi, 3
adc edx, 0
shrd edi, edx, 3
sar edx, 3
cmp dword [ecx], 0xfffffe00
mov dword [ebp - 0xe78], edx
cmovg eax, ecx
mov ecx, dword [ebp - 0xe0c]
mov esi, dword [eax]
cmp esi, 0x1ff
mov eax, 0x1ff
cmovg esi, eax
movzx eax, byte [ebp + esi - 0x610]
push eax
call fcn.100e0e80
mov ecx, eax
mov edx, dword [ebp - 0xde0]
shr eax, 1
not ecx
and ecx, 1
dec ecx
xor ecx, eax
movsx eax, byte [ebp + esi - 0x210]
imul ecx, eax
movsx eax, byte [ebp + esi - 0xa10]
add ecx, edi
add eax, ecx
mov ecx, dword [ebp - 0xdd8]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0xe14]
cdq
mov esi, eax
mov edi, edx
mov edx, dword [ebp - 0xdd8]
xor eax, eax
mov ecx, dword [ecx + 0x18]
add ecx, 2
shld edi, esi, 3
mov dword [ebp - 0xdc8], ecx
shl esi, 3
cmp dword [ebp - 0xdc4], eax
cmove eax, ecx
mov ecx, dword [ebp - 0xda0]
add edx, eax
sub ecx, esi
mov eax, dword [ebp - 0xd68]
mov dword [eax + edx*4], ecx
lea eax, [edx*4]
mov ecx, dword [ebp - 0xdc0]
mov dword [ebp - 0xdcc], eax
sub ecx, esi
mov eax, dword [ebp - 0xdbc]
sbb eax, edi
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdcc]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd98]
mov dword [eax + edx], ecx
xor eax, eax
cmp dword [ebp - 0xdc4], eax
mov edx, dword [ebp - 0xdc8]
cmove edx, eax
mov eax, dword [ebp - 0xd98]
add edx, dword [ebp - 0xdd8]
shl edx, 2
mov dword [ebp - 0xdc8], edx
add dword [eax + edx + 4], ecx
mov ecx, dword [ebp - 0xdb8]
mov eax, dword [ebp - 0xdb4]
sub ecx, esi
sbb eax, edi
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdcc]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd8c]
mov dword [eax + edx], ecx
mov eax, dword [ebp - 0xd8c]
mov edx, dword [ebp - 0xdc8]
add dword [eax + edx + 4], ecx
mov ecx, dword [ebp - 0xdb0]
mov eax, dword [ebp - 0xdac]
sub ecx, esi
sbb eax, edi
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdcc]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd80]
mov dword [eax + edx], ecx
mov eax, dword [ebp - 0xd80]
mov edx, dword [ebp - 0xdc8]
add dword [eax + edx + 4], ecx
mov ecx, dword [ebp - 0xda8]
mov eax, dword [ebp - 0xda4]
sub ecx, esi
mov esi, dword [ebp - 0xe34]
sbb eax, edi
mov dword [ebp - 0xdd8], esi
mov edi, dword [ebp - 0xe14]
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdcc]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd74]
mov dword [eax + edx], ecx
mov eax, dword [ebp - 0xd74]
mov edx, dword [ebp - 0xdc8]
add dword [eax + edx + 4], ecx
mov ecx, dword [edi + 0x18]
mov eax, dword [ebp - 0xde0]
mov edx, dword [ebp - 0xddc]
mov dword [ebp - 0xdd0], ecx
cmp esi, ecx
jb 0x101b0490
inc edx
mov dword [ebp - 0xddc], edx
cmp edx, dword [edi + 0x1c]
jb 0x101b0450
mov eax, dword [ebp - 0xe70]
mov esi, dword [ebp - 0xe68]
test eax, eax
je 0x101b0fdd
sub esi, eax
and esi, 0xfffffffc
cmp esi, 0x1000
jb 0x101b0fd3
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x101b156c
mov eax, ecx
push esi
push eax
call fcn.101e8bf4
add esp, 8
lea ecx, [ebp - 0xdc0]
call fcn.1008be00
jmp 0x101b1525
lea eax, [ebp - 0xe24]
mov dword [ebp - 0xe34], eax
lea ecx, [ebp - 0xe70]
lea eax, [ebp - 0xdf9]
push eax
push dword [ebp - 0xdd4]
call fcn.100318a0
cmp byte [ebp - 0xdf9], 0
jne 0x101b11c2
mov esi, dword [ebp - 0xe6c]
lea ecx, [ebp - 0xeb0]
sub esi, dword [ebp - 0xe70]
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0x18]
push 4
sar esi, 2
push edi
shr eax, 2
add esi, 0xfffffff0
push esi
mov byte [ebp - 4], 4
mov dword [ebp - 0xe64], eax
call fcn.10199ce0
mov dword [ebp - 0xe98], esi
mov dword [ebp - 0xe94], edi
mov dword [ebp - 0xe90], 0
mov dword [ebp - 0xe8c], 0
mov esi, dword [ebp - 0xe14]
xor edx, edx
mov byte [ebp - 4], 5
mov dword [ebp - 0xdcc], edx
cmp dword [esi + 0x1c], edx
jbe 0x101b11b9
nop dword [eax]
mov edi, dword [esi + 0x10]
lea eax, [ebp - 0xeb0]
push eax
push dword [ebp - 0xe2c]
imul edi, edx
push dword [ebp - 0xe04]
push edx
push esi
add edi, dword [esi + 0x14]
call fcn.100cc8b0
mov eax, dword [ebp - 0xe70]
add esp, 0x14
movq xmm0, qword [ebp - 0xc18]
mov edx, dword [ebp - 0xdcc]
movq qword [eax], xmm0
mov dword [eax + 8], edx
mov dword [eax + 0x24], 0
xor eax, eax
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0xdd4], eax
test ecx, ecx
je 0x101b11a9
nop dword [eax + eax]
push 0
push 0
lea esi, [ebp - 0xeb0]
push esi
lea esi, [ebp - 0xe34]
push esi
push 0
push edx
push eax
push dword [ebp - 0xe64]
lea eax, [ebp - 0xe70]
push edi
push ecx
push eax
lea eax, [ebp - 0xee0]
push eax
call fcn.100c5000
mov ecx, dword [ebp - 0xe0c]
add esp, 0x30
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
push dword [ebp - 0xe28]
movd eax, xmm1
movups xmmword [ebp - 0xc28], xmm1
push eax
movq qword [ebp - 0xeb8], xmm0
call fcn.100e0e80
movups xmm0, xmmword [ebp - 0xc28]
mov esi, dword [ebp - 0xe14]
mov ecx, eax
mov edx, dword [ebp - 0xdcc]
not ecx
and ecx, 1
shr eax, 1
dec ecx
psrldq xmm0, 8
xor ecx, eax
mov dword [ebp - 0xe84], 0
imul ecx, dword [ebp - 0xeb4]
movd eax, xmm0
add ecx, eax
mov eax, dword [ebp - 0xdd4]
mov dword [edi], ecx
inc eax
mov ecx, dword [esi + 0x18]
add edi, 4
mov dword [ebp - 0xdd4], eax
cmp eax, ecx
jb 0x101b10f0
inc edx
mov dword [ebp - 0xdcc], edx
cmp edx, dword [esi + 0x1c]
jb 0x101b1090
mov byte [ebp - 4], 6
jmp 0x101b1507
mov esi, dword [ebp - 0xe6c]
lea ecx, [ebp - 0xeb0]
sub esi, dword [ebp - 0xe70]
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0x18]
push 4
sar esi, 2
push edi
shr eax, 2
add esi, 0xfffffff0
push esi
mov byte [ebp - 4], 7
mov dword [ebp - 0xe64], eax
call fcn.10199ce0
mov dword [ebp - 0xe98], esi
mov dword [ebp - 0xe94], edi
mov dword [ebp - 0xe90], 0
mov dword [ebp - 0xe8c], 0
mov esi, dword [ebp - 0xe14]
mov byte [ebp - 4], 8
push dword [esi + 0x1c]
push dword [esi + 0x18]
sub esp, 0x34
mov ecx, esp
push dword [ebp - 0xdc4]
call fcn.100c82d0
lea ecx, [ebp - 0xdc0]
call fcn.1008b590
xor eax, eax
mov byte [ebp - 4], 9
mov dword [ebp - 0xdf0], eax
cmp dword [esi + 0x1c], eax
jbe 0x101b14f8
mov edi, dword [esi + 0x10]
mov ecx, dword [ebp - 0xe70]
movq xmm0, qword [ebp - 0xc18]
imul edi, eax
add edi, dword [esi + 0x14]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov dword [ecx + 0x24], 0
lea ecx, [ebp - 0xeb0]
push ecx
push dword [ebp - 0xe2c]
mov dword [ebp - 0xdd0], edi
push dword [ebp - 0xe04]
push eax
push esi
call fcn.100cc8b0
xor eax, eax
add esp, 0x14
mov dword [ebp - 0xdcc], eax
cmp dword [esi + 0x18], eax
jbe 0x101b14e2
mov ecx, dword [ebp - 0xdf0]
mov edx, ecx
and edx, 1
mov dword [ebp - 0xdd4], edx
push 0
lea edx, [ebp - 0xdc0]
push edx
lea edx, [ebp - 0xeb0]
push edx
lea edx, [ebp - 0xe34]
push edx
push 0
push ecx
push eax
push dword [ebp - 0xe64]
lea eax, [ebp - 0xe70]
push edi
push dword [esi + 0x18]
push eax
lea eax, [ebp - 0xee0]
push eax
call fcn.100c5430
mov ecx, dword [ebp - 0xe0c]
add esp, 0x30
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
push dword [ebp - 0xe28]
movd eax, xmm1
movups xmmword [ebp - 0xc28], xmm1
push eax
movq qword [ebp - 0xeb8], xmm0
call fcn.100e0e80
movups xmm0, xmmword [ebp - 0xc28]
mov ecx, eax
mov dword [ebp - 0xe84], 0
shr eax, 1
not ecx
and ecx, 1
psrldq xmm0, 8
dec ecx
xor ecx, eax
movd eax, xmm0
imul ecx, dword [ebp - 0xeb4]
add eax, ecx
xor ecx, ecx
mov dword [edi], eax
mov esi, dword [esi + 0x18]
cdq
add esi, 2
mov edi, eax
mov dword [ebp - 0xdd8], esi
mov eax, dword [ebp - 0xd68]
shld edx, edi, 3
shl edi, 3
cmp dword [ebp - 0xdd4], ecx
mov dword [ebp - 0xdc4], edx
cmove ecx, esi
mov esi, dword [ebp - 0xdcc]
add esi, ecx
lea ecx, [eax + esi*4]
mov eax, dword [ebp - 0xda0]
sub eax, edi
mov dword [ecx], eax
mov ecx, dword [ebp - 0xdc0]
mov eax, dword [ebp - 0xdbc]
sub ecx, edi
sbb eax, edx
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdd8]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd98]
mov dword [eax + esi*4], ecx
xor eax, eax
cmp dword [ebp - 0xdd4], eax
cmove edx, eax
mov eax, dword [ebp - 0xd98]
add edx, dword [ebp - 0xdcc]
shl edx, 2
mov dword [ebp - 0xdd8], edx
add dword [eax + edx + 4], ecx
mov ecx, dword [ebp - 0xdb8]
mov eax, dword [ebp - 0xdb4]
sub ecx, edi
sbb eax, dword [ebp - 0xdc4]
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdd8]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd8c]
mov dword [eax + esi*4], ecx
mov eax, dword [ebp - 0xd8c]
add dword [eax + edx + 4], ecx
mov ecx, dword [ebp - 0xdb0]
mov eax, dword [ebp - 0xdac]
sub ecx, edi
sbb eax, dword [ebp - 0xdc4]
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdd8]
add ecx, 3
adc eax, 0
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd80]
mov dword [eax + esi*4], ecx
mov eax, dword [ebp - 0xd80]
add dword [edx + eax + 4], ecx
mov ecx, dword [ebp - 0xda8]
mov eax, dword [ebp - 0xda4]
sub ecx, edi
mov edi, dword [ebp - 0xdd0]
sbb eax, dword [ebp - 0xdc4]
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov edx, dword [ebp - 0xdd8]
add ecx, 3
adc eax, 0
add edi, 4
shrd ecx, eax, 3
mov eax, dword [ebp - 0xd74]
mov dword [ebp - 0xdd0], edi
mov dword [eax + esi*4], ecx
mov eax, dword [ebp - 0xd74]
mov esi, dword [ebp - 0xe14]
add dword [edx + eax + 4], ecx
mov eax, dword [ebp - 0xdcc]
mov ecx, dword [ebp - 0xdf0]
inc eax
mov dword [ebp - 0xdcc], eax
cmp eax, dword [esi + 0x18]
jb 0x101b12c0
mov eax, dword [ebp - 0xdf0]
inc eax
mov dword [ebp - 0xdf0], eax
cmp eax, dword [esi + 0x1c]
jb 0x101b1256
lea ecx, [ebp - 0xdc0]
call fcn.1008be00
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0xe9c]
test eax, eax
je 0x101b151a
push eax
call fcn.100de900
add esp, 4
lea ecx, [ebp - 0xe70]
call fcn.10007640
mov ecx, dword [ebp - 0xe24]
mov esi, dword [ebp - 0xe80]
mov dword [esi], 0
test ecx, ecx
je 0x101b00c0
mov edx, dword [ebp - 0xe1c]
mov eax, ecx
sub edx, ecx
and edx, 0xffffffe0
cmp edx, 0x1000
jb 0x101b00b6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x101b00b6
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [ebp - 0xe80]
mov dword [eax], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101e8c02
mov esp, ebp
pop ebp
ret