Function at 0x1015fdf0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x240
mov eax, dword [ebp + 8]
mov dword [esp + 0x1bc], edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x64], 8
mov dword [esp + 0x68], 0
mov dword [esp + 0x54], 8
mov dword [esp + 0x58], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x5c], 0
lea edi, [esp + 0x100]
mov ecx, 0x12
movsd xmm0, qword [eax + 0x38]
movsd xmm1, qword [eax + 8]
lea esi, [eax + 0x48]
mov edx, dword [eax + 0x40]
mov ebx, dword [eax + 0x44]
movsd qword [esp + 0xf0], xmm0
movsd xmm0, qword [eax + 0x30]
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [eax + 0x28]
movsd qword [esp + 0xe0], xmm0
movsd xmm0, qword [eax + 0x20]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [eax + 0x18]
movsd qword [esp + 0xd0], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xc8], xmm0
movsd xmm0, qword [eax]
movsd qword [esp + 0xb8], xmm0
movaps xmm0, xmmword [0x10437ec0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x94]
mov dword [esp + 0x14c], ecx
mov ecx, dword [eax + 0x91]
movzx eax, byte [eax + 0x90]
mov dword [esp + 0x149], ecx
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], ebx
mov byte [esp + 0x148], al
mov dword [esp + 0x154], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x158], 0
movups xmmword [esp + 0x160], xmm0
mov dword [esp + 0x174], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x184], 0
mov dword [esp + 0x180], 0
mov byte [esp + 0x188], 0
mov byte [esp + 0x189], al
call 0x1015ff8a
pop eax
mov dword [esp + 0x18a], 0
mov dword [esp + 0x190], edx
mov dword [esp + 0x194], ebx
mov dword [esp + 0x44], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x1e8], eax
xor eax, eax
jmp 0x1015ffd1
movaps xmm0, xmmword [esp + 0x30]
mov dword [eax + ecx*8 + 0xc], esi
mov dword [eax + ecx*8 + 8], edi
movlps qword [eax + ecx*8 + 0x10], xmm0
movzx eax, byte [esp + 0x18b]
test al, al
je 0x10160048
movzx eax, byte [esp + 0x148]
movaps xmm0, xmmword [0x10437ec0]
lea ecx, [esp + 0x150]
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 0
lea ecx, [esp + 0x100]
movups xmmword [esp + 0x160], xmm0
mov byte [esp + 0x188], 0
mov dword [ecx + 0x74], 0
mov dword [ecx + 0x70], 0
mov dword [ecx + 0x7c], 0
mov dword [ecx + 0x78], 0
mov byte [esp + 0x189], al
mov byte [esp + 0x18b], 0
mov dword [esp + 0x184], 0
mov dword [esp + 0x180], 0
mov byte [esp + 0x18a], 0
mov word [esp + 0x18c], 0
mov ecx, dword [esp + 0x194]
test ecx, ecx
je 0x101617f7
mov edi, dword [esp + 0x190]
lea ebx, [ecx - 1]
lea edx, [edi + 1]
mov dword [esp + 8], edi
mov dword [esp + 0x190], edx
mov dword [esp + 0x194], ebx
movzx eax, byte [edi]
test eax, eax
je 0x101601a0
cmp al, byte [esp + 0x14d]
mov esi, edx
mov edx, eax
mov dword [esp + 0x18], ebx
jae 0x10160240
dec eax
mov dword [esp + 0x24], edx
cmp eax, 0xb
ja 0x10160a3a
mov eax, dword [eax*4 + 0x1016278c]
mov dword [esp + 0x24], edx
mov edx, esi
mov dword [esp + 0x1c], 0x2f
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
xor ebx, ebx
xor esi, esi
add eax, dword [esp + 0x44]
jmp eax
test ebx, ebx
je 0x10161414
lea eax, [ecx - 1]
mov dword [esp + 0x14], ecx
xor edx, edx
mov dword [esp + 0x30], 0
xor ecx, ecx
mov dword [esp + 0x18], eax
lea eax, [edi + 4]
mov dword [esp + 0x10], eax
xor eax, eax
nop dword [eax + eax]
movzx ebx, byte [edi + edx + 1]
cmp ecx, 0x3f
jne 0x101601e3
cmp bl, 2
jae 0x101613c0
mov dword [esp + 0xc], edx
mov edx, ebx
mov esi, eax
mov eax, ebx
mov ebx, 0
and dl, 0x7f
movzx edi, dl
xor edx, edx
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
cmovne edi, ebx
mov ebx, eax
mov eax, esi
or dword [esp + 0x30], edi
or eax, edx
test bl, bl
jns 0x1016024f
mov edx, dword [esp + 0xc]
add ecx, 7
inc dword [esp + 0x10]
mov edi, dword [esp + 8]
inc edx
cmp dword [esp + 0x18], edx
jne 0x101601d0
jmp 0x101613d0
xor esi, esi
mov dword [esp + 0x1c], 0x2e
jmp 0x101605a4
mov esi, dword [esp + 0xc]
test eax, eax
jne 0x1016163f
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x30]
mov ecx, edx
sub ecx, esi
add ecx, 0xfffffffe
cmp ecx, ebx
jb 0x10161655
mov edi, dword [esp + 8]
sub edx, ebx
sub edx, esi
add edx, 0xfffffffe
test ebx, ebx
mov dword [esp + 0x18], edx
lea ecx, [edi + ebx]
lea eax, [esi + ecx + 2]
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], edx
je 0x10161671
mov ecx, edi
mov dword [esp + 0x14], eax
lea edi, [ebx - 1]
lea edx, [ecx + esi + 3]
mov dword [esp + 0x1ec], edx
movzx eax, byte [ecx + esi + 2]
lea ecx, [eax - 1]
cmp ecx, 3
ja 0x10160bd8
mov ecx, dword [ecx*4 + 0x101627bc]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], 0x3e
xor eax, eax
mov dword [esp + 0x20], 0
xor esi, esi
xor ebx, ebx
add ecx, dword [esp + 0x44]
jmp ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], eax
xor ebx, ebx
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0x1d8]
mov ecx, ebx
movsd xmm1, qword [esp + 0x1c8]
add eax, 0xffffffd2
movsd qword [esp + 0x1b0], xmm0
movsd xmm0, qword [esp + 0x1d0]
movsd qword [esp + 0x1a0], xmm1
adc ecx, 0xffffffff
cmp eax, 0x15
sbb ecx, 0
mov ecx, 0x12
cmovae eax, ecx
mov eax, dword [eax*4 + 0x101627ec]
movsd qword [esp + 0x1a8], xmm0
movsd xmm0, qword [esp + 0x1c0]
add eax, dword [esp + 0x44]
movsd qword [esp + 0x198], xmm0
jmp eax
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0xf0]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x24]
dec cl
movzx ecx, cl
cmp eax, ecx
jb 0x101616f5
add edx, ecx
cmp eax, ecx
je 0x101616f5
movzx eax, byte [edx]
test eax, eax
je 0x101610a4
cmp eax, 1
jne 0x101610c1
test ebx, ebx
mov edx, esi
je 0x10161414
mov edx, 2
lea eax, [edi + 2]
mov dword [esp + 0x30], 0
xor edi, edi
xor ecx, ecx
sub edx, dword [esp + 0x14]
nop dword [eax]
movzx ebx, byte [eax - 1]
cmp ecx, 0x3f
jne 0x10160ab2
cmp bl, 2
jae 0x101613c0
mov dword [esp + 0x18], edx
mov edx, ebx
xor esi, esi
mov dword [esp + 0xc], edi
mov edi, 0
and dl, 0x7f
movzx edx, dl
shld esi, edx, cl
shl edx, cl
test cl, 0x20
cmovne esi, edx
cmovne edx, edi
mov edi, dword [esp + 0xc]
or edi, esi
mov esi, dword [esp + 0x30]
or esi, edx
test bl, bl
mov edx, esi
jns 0x10161377
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x18]
mov esi, ebx
add ecx, 7
inc eax
inc edx
cmp edx, 1
jne 0x10160aa0
jmp 0x101613df
mov dword [esp + 0x24], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x42
lea edx, [eax + esi + 3]
mov esi, edx
mov eax, edx
and esi, 0xff00
and eax, 0xffff0000
jmp 0x1016129f
mov ecx, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x1c], 0x3b
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], eax
mov edx, ecx
jmp 0x101605b4
neg edi
mov edx, esi
mov dword [esp + 0x2c], esi
mov esi, ebx
mov dword [esp + 0x48], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x10], eax
mov dword [esp + 8], edi
mov dword [esp + 0x30], edx
test esi, esi
je 0x1016174c
mov ecx, esi
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 8]
mov eax, esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
neg eax
mov dword [esp + 0x28], eax
lea eax, [edi + 1]
add edi, ecx
xor ecx, ecx
nop dword [eax]
movzx ebx, byte [eax - 1]
cmp ecx, 0x3f
jne 0x10161132
cmp bl, 2
jae 0x10161663
mov edx, ebx
mov dword [esp + 0xc], edi
xor edi, edi
mov esi, 0
mov dword [esp + 0xb4], ebx
and dl, 0x7f
movzx edx, dl
shld edi, edx, cl
shl edx, cl
test cl, 0x20
cmovne edi, edx
cmovne edx, esi
or dword [esp + 0x20], edi
mov edi, dword [esp + 0x1c]
or edi, edx
test bl, bl
jns 0x10161180
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0xc]
add ecx, 7
inc eax
inc edi
inc dword [esp + 0x28]
jne 0x10161120
jmp 0x10161685
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x14], edi
mov dword [esp + 0x190], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
inc edx
not esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x60], edx
cmp edx, ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x194], esi
jne 0x101610e7
mov ecx, dword [esp + 0x28]
cmp ebx, edi
jb 0x10161705
mov eax, edx
mov esi, edx
not ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x3d
xor ebx, ebx
and eax, 0xffff0000
and esi, 0xff00
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
jmp 0x101605ba
xor ebx, ebx
mov dword [esp + 0x10], eax
jmp 0x101605ba
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x18]
mov esi, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x3c
xor ebx, ebx
and esi, 0xff00
neg eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x194], eax
mov eax, edx
and eax, 0xffff0000
mov dword [esp + 0x10], eax
jmp 0x101605ba
mov ecx, 6
xor edx, edx
xor esi, esi
jmp 0x10161421
add edi, dword [esp + 0x14]
mov edx, edi
mov dword [esp + 0x190], edi
jmp 0x10161409
mov edx, dword [esp + 8]
mov ebx, esi
jmp 0x101613fe
add edx, dword [esp + 0x14]
mov dword [esp + 0x190], edx
mov dword [esp + 0x194], 0
xor esi, esi
mov dword [esp + 0x14], edx
mov ecx, 0x13
xor edx, edx
movzx eax, bl
movzx ecx, cl
shl esi, 0x10
mov dword [esp + 0x190], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
mov dword [esp + 0x194], 0
shl eax, 8
or ecx, eax
or esi, ecx
mov ebx, esi
mov ecx, ebx
cmp cl, 0x4b
jne 0x10162306
test edi, edi
je 0x101617f7
mov eax, dword [esp + 0x14]
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], ebx
cmp byte [eax + 0x3b], 0
je 0x10161510
mov ebx, dword [esp + 0x5c]
test ebx, ebx
je 0x1015ffc9
mov edi, dword [esp + 0x54]
test edi, edi
je 0x1015ffc9
mov edx, dword [edi + 4]
mov esi, dword [esp + 0x58]
mov ecx, dword [edi]
mov dword [esp + 0x30], edx
mov edx, dword [eax]
mov eax, dword [eax + 4]
cmp esi, ebx
mov dword [esp + 0x54], 8
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
jbe 0x101615b9
lea eax, [ebx*8]
mov dword [esp + 0x18], esi
lea eax, [eax + eax*2]
mov dword [esp + 0x1c], eax
push eax
push edi
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapReAlloc
mov esi, eax
test eax, eax
je 0x10162671
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x68]
je 0x101615c5
jmp 0x101615d2
mov ecx, dword [eax]
mov edx, dword [esp + 0x5c]
movdqu xmm0, xmmword [eax + 0x18]
mov esi, dword [eax + 0x14]
mov edi, dword [eax + 0x10]
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x54]
pshufd xmm0, xmm0, 0xe8
movdqa xmmword [esp + 0x30], xmm0
mov dword [esp + 8], ecx
mov ecx, edx
sub ecx, 1
jb 0x1016156c
test eax, eax
je 0x1016156c
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, dword [eax + ecx*8 + 4]
mov ebx, dword [eax + ecx*8]
xor edi, dword [esp + 8]
xor ebx, dword [esp + 0xc]
or ebx, edi
mov edi, esi
mov esi, dword [esp + 0x10]
je 0x1015ffb7
cmp edx, dword [esp + 0x58]
jne 0x10161583
lea ecx, [esp + 0x54]
call fcn.1014f910
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 8]
lea ecx, [edx + edx*2]
movaps xmm0, xmmword [esp + 0x30]
inc edx
mov dword [eax + ecx*8 + 4], ebx
mov ebx, dword [esp + 0xc]
mov dword [eax + ecx*8], ebx
mov dword [eax + ecx*8 + 0xc], esi
mov dword [eax + ecx*8 + 8], edi
movlps qword [eax + ecx*8 + 0x10], xmm0
mov dword [esp + 0x5c], edx
movzx eax, byte [esp + 0x18b]
jmp 0x1015ffd1
mov esi, edi
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x68]
jne 0x101615d2
lea ecx, [esp + 0x64]
call fcn.1014f910
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x64]
lea ecx, [edx + edx*2]
mov edi, dword [esp + 0xc]
inc edx
mov dword [eax + ecx*8], esi
mov dword [eax + ecx*8 + 4], ebx
mov ebx, dword [esp + 0x30]
mov dword [eax + ecx*8 + 8], edi
mov edi, dword [esp + 8]
mov dword [eax + ecx*8 + 0xc], ebx
mov ebx, dword [esp + 0x10]
mov dword [eax + ecx*8 + 0x10], edi
mov dword [eax + ecx*8 + 0x14], ebx
mov dword [esp + 0x6c], edx
movzx eax, byte [esp + 0x18b]
jmp 0x1015ffd1
mov edx, dword [esp + 0x30]
mov ecx, 0x35
xor esi, esi
mov dword [esp + 0x14], edx
mov edx, eax
jmp 0x10161421
mov eax, dword [esp + 8]
lea edi, [eax + esi + 2]
mov dword [esp + 0x14], edi
jmp 0x10161679
mov edx, dword [esp + 0x48]
mov ecx, 6
jmp 0x101613c7
lea eax, [edi + esi + 2]
mov dword [esp + 0x14], eax
mov ecx, 0x13
xor edx, edx
jmp 0x101613c7
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0xb4]
add eax, dword [esp + 0x74]
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], 0
xor esi, esi
mov ecx, 0x13
mov dword [esp + 0x14], eax
jmp 0x1016141f
mov dword [esp + 0x14], edx
xor esi, esi
mov ecx, 0x13
jmp 0x1016141f
xor esi, esi
mov dword [esp + 0x14], edx
jmp 0x1016141a
mov eax, dword [esp + 0x2c]
jmp 0x101616a6
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x64]
cmp ebx, 0x15
mov dword [esp + 0x50], eax
jae 0x10161826
cmp ebx, 1
jbe 0x10161f3c
mov ecx, dword [esp + 0x50]
mov edx, ebx
push 1
call fcn.1014b150
add esp, 4
jmp 0x10161f3c
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1048f0f8]
test eax, eax
jne 0x10161849
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10162681
mov dword [0x1048f0f8], eax
mov ecx, ebx
shr ecx, 1
mov dword [esp + 0x1e4], ecx
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
mov dword [esp + 0xc], eax
je 0x10162681
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1048f0f8]
test eax, eax
jne 0x10161896
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10162695
mov dword [0x1048f0f8], eax
push pe_nt_image_headers32
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
mov dword [esp + 0x30], eax
je 0x10162695
mov eax, dword [esp + 0x50]
mov dword [esp + 0x60], 0x10
mov dword [esp + 0x4c], ebx
lea ecx, [eax + 0x38]
add eax, 0xffffffe8
mov dword [esp + 0x74], ecx
mov dword [esp + 0x48], eax
xor eax, eax
xor ecx, ecx
jmp 0x101618f1
mov ecx, 1
mov eax, dword [esp + 0x2c]
cmp eax, ebx
jae 0x10161f1a
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x50]
mov esi, ebx
mov edx, eax
sub esi, eax
lea eax, [eax + eax*2]
mov dword [esp + 0x10], edx
cmp esi, 2
mov dword [esp + 8], esi
lea ecx, [ecx + eax*8]
mov dword [esp + 0x18], ecx
jae 0x10161980
mov eax, dword [esp + 8]
mov ecx, ebx
mov esi, ecx
sub esi, edx
jb 0x10162602
cmp ecx, ebx
ja 0x10162602
jae 0x101619d0
cmp eax, 0xa
jae 0x101619d0
lea esi, [edx + 0xa]
cmp esi, ebx
cmovae esi, ebx
mov dword [esp + 0x2c], esi
sub esi, edx
jb 0x10162631
cmp eax, 2
mov edi, eax
mov eax, 1
cmovb edi, eax
mov ecx, dword [esp + 0x18]
mov edx, esi
push edi
call fcn.1014b150
add esp, 4
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp ecx, dword [esp + 0x60]
je 0x101619de
jmp 0x10161a5a
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x20]
mov edx, dword [ecx + 8]
mov esi, dword [ecx + 0x24]
mov edi, dword [ecx + 0xc]
cmp eax, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edi
sbb esi, edi
jae 0x10161d80
cmp dword [esp + 8], 2
mov eax, dword [esp + 0x44]
jne 0x10161d9c
mov edx, dword [esp + 0x10]
mov eax, 2
lea ecx, [edx + 2]
jmp 0x10161e30
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x24]
cmp ecx, dword [esp + 0x60]
jne 0x10161a5a
lea eax, [ecx + ecx]
mov dword [esp + 0x60], eax
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1048f0f8]
test eax, eax
jne 0x10161a0c
mov edi, ecx
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1016261b
mov ecx, edi
mov dword [0x1048f0f8], eax
mov edi, ecx
shl ecx, 4
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x1016261b
lea ecx, [edi*8]
push ecx
mov edi, dword [esp + 0x34]
push edi
push eax
mov dword [esp + 0x14], eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push edi
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [eax + ecx*8], esi
mov dword [eax + ecx*8 + 4], edx
inc ecx
cmp ecx, 2
jae 0x10161acf
jmp 0x101618e5
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
sub edi, eax
push edi
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
add ecx, dword [esp + 0x10]
mov dword [esp + 0x30], edx
mov dword [edx + eax*8 + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx + eax*8 + 0xc], ecx
mov ecx, dword [esp + 0x14]
not eax
add esi, eax
shl esi, 3
lea eax, [ecx + 8]
push esi
push eax
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x4c]
cmp ecx, 1
jbe 0x101618e0
mov esi, ecx
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + esi*8 - 8]
mov ecx, dword [ecx + esi*8 - 4]
add ecx, eax
cmp ecx, ebx
je 0x10161b40
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + esi*8 - 0x10]
cmp edx, eax
jbe 0x10161b40
cmp esi, 3
jb 0x10161ef2
lea ecx, [esi - 3]
mov ebx, esi
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + esi*8 - 0x18]
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x10161d5e
cmp ebx, 4
jb 0x10161efc
mov edi, dword [esp + 0x30]
add edx, ecx
mov esi, ebx
cmp dword [edi + ebx*8 - 0x20], edx
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x18]
jbe 0x10161b50
jmp 0x10161f13
cmp esi, 3
jb 0x10161b54
mov ecx, dword [esp + 0x30]
lea edx, [esi - 3]
mov ecx, dword [ecx + esi*8 - 0x18]
cmp ecx, eax
jb 0x10161b57
lea edx, [esi - 2]
cmp esi, edx
jbe 0x1016258c
lea eax, [edx + 1]
cmp esi, eax
jbe 0x1016259b
mov eax, dword [esp + 0x30]
mov edi, dword [eax + edx*8 + 8]
mov ecx, dword [eax + edx*8 + 4]
mov eax, dword [eax + edx*8 + 0xc]
add eax, edi
mov dword [esp + 0x44], edi
mov edi, eax
sub edi, ecx
mov dword [esp + 8], edi
jb 0x101625da
cmp eax, ebx
ja 0x101625ee
mov edi, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
lea eax, [eax + eax*2]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [edi + edx*8]
mov edx, dword [esp + 0x50]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
lea edx, [edx + ecx*8]
lea ecx, [esi + esi*2]
mov dword [esp + 0x10], esi
lea ebx, [edx + ecx*8]
mov ecx, dword [esp + 8]
lea eax, [edi + eax*8]
mov dword [esp + 0x14], eax
sub ecx, esi
cmp ecx, esi
jae 0x10161cb0
lea eax, [ecx*8]
mov dword [esp + 8], edx
mov dword [esp + 0xb4], ecx
lea edi, [eax + eax*2]
push edi
push ebx
mov esi, dword [esp + 0x14]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x10]
add edi, esi
test eax, eax
jle 0x10161a70
cmp dword [esp + 0xb4], 0
jle 0x10161a70
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx*8]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, dword [edi - 0x10]
mov edx, dword [edi - 0xc]
mov esi, 0
cmp ecx, dword [ebx - 0x10]
sbb edx, dword [ebx - 0xc]
setb dl
setb cl
adc esi, 0xffffffff
movzx edx, dl
neg edx
test cl, cl
lea edx, [edx + edx*2]
lea ebx, [ebx + edx*8]
lea edx, [esi + esi*2]
lea edi, [edi + edx*8]
mov ecx, edi
cmovne ecx, ebx
cmp ebx, dword [esp + 8]
movsd xmm1, qword [ecx + 8]
movsd xmm0, qword [ecx]
movsd qword [eax + 8], xmm1
movsd xmm1, qword [ecx + 0x10]
movsd qword [eax], xmm0
movsd qword [eax + 0x10], xmm1
jbe 0x10161a70
add eax, 0xffffffe8
cmp edi, dword [esp + 0xc]
ja 0x10161c40
jmp 0x10161a70
mov eax, dword [esp + 0x10]
lea eax, [eax*8]
lea edi, [eax + eax*2]
push edi
mov esi, edx
push edx
push dword [esp + 0x14]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x10]
add edi, dword [esp + 0xc]
test eax, eax
jle 0x10161d4d
cmp dword [esp + 8], eax
jle 0x10161d42
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0xc]
nop
mov edx, dword [ebx + 8]
cmp edx, dword [eax + 8]
mov edx, dword [ebx + 0xc]
sbb edx, dword [eax + 0xc]
mov edx, eax
cmovb edx, ebx
movsd xmm1, qword [edx + 8]
movsd xmm0, qword [edx]
movsd qword [esi + 8], xmm1
movsd xmm1, qword [edx + 0x10]
setae dl
movsd qword [esi], xmm0
movzx edx, dl
lea edx, [edx + edx*2]
lea eax, [eax + edx*8]
setb dl
movsd qword [esi + 0x10], xmm1
add esi, 0x18
cmp eax, edi
jae 0x10161d46
movzx edx, dl
lea edx, [edx + edx*2]
lea ebx, [ebx + edx*8]
cmp ebx, ecx
jb 0x10161cf0
jmp 0x10161d46
mov eax, dword [esp + 0xc]
mov ebx, esi
jmp 0x10161a74
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
mov ebx, esi
mov esi, ecx
jmp 0x10161a78
mov esi, ebx
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x18]
cmp ecx, eax
jae 0x10161b54
jmp 0x10161b57
cmp dword [esp + 8], 2
mov eax, dword [esp + 0x44]
jne 0x10161dcd
mov edx, dword [esp + 0x10]
mov eax, 2
lea ecx, [edx + 2]
jmp 0x1016191c
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea ebx, [ecx + eax*8]
mov eax, 2
mov ecx, edx
mov edi, esi
mov esi, dword [ebx]
mov edx, dword [ebx + 4]
cmp esi, edi
mov edi, edx
sbb edi, ecx
jae 0x10161e0f
inc eax
add ebx, 0x18
cmp dword [esp + 8], eax
jne 0x10161db0
jmp 0x10161e0b
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea ebx, [ecx + eax*8]
mov eax, 2
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edi, edx
mov ecx, esi
mov esi, dword [ebx]
mov edx, dword [ebx + 4]
cmp esi, ecx
mov ecx, edx
sbb ecx, edi
jb 0x10161e0f
inc eax
add ebx, 0x18
cmp dword [esp + 8], eax
jne 0x10161df0
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x4c]
cmp dword [esp + 0x1c], edi
lea ecx, [eax + edx]
sbb esi, dword [esp + 0x14]
jae 0x1016191c
cmp ecx, edx
jb 0x1016264d
cmp ecx, ebx
ja 0x1016263c
cmp eax, 2
jb 0x1016191c
mov dword [esp + 0x2c], ecx
mov ecx, eax
mov esi, dword [esp + 0x18]
shr eax, 1
mov dword [esp + 8], ecx
add ecx, edx
mov edx, dword [esp + 0x48]
lea ecx, [ecx + ecx*2]
lea edx, [edx + ecx*8]
nop word cs:[eax + eax]
nop
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x80], xmm1
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [edx + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0x18
movsd xmm0, qword [esp + 0x88]
movsd qword [edx + 0x10], xmm0
movsd xmm0, qword [esp + 0x78]
movsd xmm1, qword [esp + 0x80]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
add edx, 0xffffffe8
dec eax
jne 0x10161e70
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
jmp 0x1016191c
mov ecx, 2
jmp 0x101618e5
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x4c]
mov ecx, 3
cmp eax, ebx
jb 0x101618f1
jmp 0x10161f1a
mov ecx, esi
jmp 0x101618e5
push dword [esp + 0x30]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0xc]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp word [esp + 0x10a], 5
mov dword [esp + 0x198], 4
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
jae 0x10161f88
mov eax, dword [esp + 0xb8]
xor eax, 0x2e
or eax, dword [esp + 0xbc]
je 0x10162032
lea esi, [esp + 0xb8]
jmp 0x10161f9d
cmp dword [esp + 0x138], 0
je 0x10162032
mov esi, dword [esp + 0x130]
mov edx, dword [esp + 0x1bc]
lea eax, [esp + 0xb8]
lea ecx, [esp + 0x78]
push dword [ebp + 0xc]
push eax
push esi
call fcn.1015ba20
add esp, 0xc
movzx eax, byte [esp + 0x78]
cmp al, 0x4b
jne 0x1016229d
mov eax, dword [esp + 0x84]
movsd xmm0, qword [esp + 0x7c]
mov dword [esp + 0x1cb], eax
movsd qword [esp + 0x1c3], xmm0
movsd qword [esp + 0x200], xmm0
mov dword [esp + 0x208], eax
lea ecx, [esp + 0x198]
xor edx, edx
call fcn.10150290
lea eax, [esp + 0x1c3]
mov esi, dword [esp + 0x1a0]
mov edi, dword [esp + 0x198]
mov edx, dword [eax + 8]
lea ecx, [esi + esi*2]
mov dword [esp + 8], edi
mov dword [edi + ecx*4 + 8], edx
movsd xmm0, qword [eax]
movsd qword [edi + ecx*4], xmm0
jmp 0x10162086
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea ecx, [esp + 0x198]
xor edx, edx
call fcn.10150290
mov esi, dword [esp + 0x1a0]
mov edx, dword [esp + 0x198]
mov ecx, dword [esp + 0x80]
lea eax, [esi + esi*2]
mov dword [esp + 8], edx
mov dword [edx + eax*4 + 8], ecx
movsd xmm0, qword [esp + 0x78]
movsd qword [edx + eax*4], xmm0
inc esi
mov ebx, 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x1a0], esi
jmp 0x101620d2
mov edx, dword [esp + 8]
lea ecx, [esp + 0x1c3]
lea eax, [esi + esi*2]
inc esi
add ebx, 1
mov dword [esp + 8], edx
movsd xmm0, qword [ecx]
mov ecx, dword [ecx + 8]
adc dword [esp + 0xc], 0
mov dword [edx + eax*4 + 8], ecx
movsd qword [edx + eax*4], xmm0
mov dword [esp + 0x1a0], esi
cmp word [esp + 0x10a], 5
jae 0x10162100
mov eax, ebx
or eax, dword [esp + 0xc]
je 0x101621a1
lea eax, [ebx - 1]
cmp eax, dword [esp + 0x138]
jae 0x101621bf
imul eax, eax, 0x38
jmp 0x10162110
cmp dword [esp + 0x138], ebx
jbe 0x101621bf
imul eax, ebx, 0x38
add eax, dword [esp + 0x130]
mov edx, dword [esp + 0x1bc]
lea ecx, [esp + 0x78]
push dword [ebp + 0xc]
lea edi, [esp + 0xbc]
push edi
push eax
call fcn.1015ba20
add esp, 0xc
movzx eax, byte [esp + 0x78]
cmp al, 0x4b
jne 0x10162225
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x1c3]
cmp esi, dword [esp + 0x19c]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [edx + 8], eax
movsd qword [edx], xmm0
movsd xmm0, qword [edx]
mov eax, dword [edx + 8]
movsd qword [esp + 0x210], xmm0
mov dword [esp + 0x218], eax
jne 0x101620a0
lea ecx, [esp + 0x198]
mov edx, esi
call fcn.10150290
mov edx, dword [esp + 0x198]
mov esi, dword [esp + 0x1a0]
jmp 0x101620a4
mov eax, dword [esp + 0xb8]
xor eax, 0x2e
or eax, dword [esp + 0xbc]
lea eax, [esp + 0xb8]
jne 0x10162117
movsd xmm0, qword [esp + 0x198]
mov edi, dword [esp + 0x1a0]
movsd qword [esp + 0x78], xmm0
mov dword [esp + 0x80], edi
cmp dword [esp + 0x7c], edi
jbe 0x101623fe
mov eax, dword [esp + 0x78]
test edi, edi
je 0x1016241b
lea ecx, [edi*4]
lea esi, [ecx + ecx*2]
push esi
push eax
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapReAlloc
mov ebx, eax
test eax, eax
jne 0x1016242e
push esi
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101626a9
movsd xmm1, qword [esp + 0x80]
movsd xmm0, qword [esp + 0x79]
mov ecx, dword [esp + 0x70]
test esi, esi
movsd qword [esp + 0x1c7], xmm1
movsd qword [esp + 0x1c0], xmm0
movsd xmm1, qword [esp + 0x1c7]
movsd xmm0, qword [esp + 0x1c0]
movsd qword [ecx + 0x10], xmm1
movsd qword [ecx + 9], xmm0
mov byte [ecx + 8], al
mov dword [ecx], 1
je 0x10162404
mov ebx, dword [esp + 8]
lea edi, [ebx + 4]
jmp 0x10162286
add edi, 0xc
dec esi
je 0x101622ec
cmp dword [edi], 0
je 0x10162280
push dword [edi - 4]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
jmp 0x10162280
movsd xmm1, qword [esp + 0x80]
movsd xmm0, qword [esp + 0x79]
mov ecx, dword [esp + 0x70]
mov ebx, 4
movsd qword [esp + 0x1c7], xmm1
movsd qword [esp + 0x1c0], xmm0
movsd xmm1, qword [esp + 0x1c7]
movsd xmm0, qword [esp + 0x1c0]
movsd qword [ecx + 0x10], xmm1
movsd qword [ecx + 9], xmm0
mov byte [ecx + 8], al
mov dword [ecx], 1
cmp dword [esp + 0x19c], 0
je 0x1016232f
push ebx
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
jmp 0x1016232f
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x14]
mov eax, ebx
shr eax, 8
mov byte [ecx + 8], bl
shr ebx, 0x18
mov word [ecx + 9], ax
mov byte [ecx + 0xb], bl
mov dword [ecx + 0xc], edi
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x14], edx
mov dword [ecx], 1
cmp dword [esp + 0x110], 0
je 0x1016234d
push dword [esp + 0x10c]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x11c], 0
je 0x1016236b
push dword [esp + 0x118]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x128], 0
je 0x10162389
push dword [esp + 0x124]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x134], 0
je 0x101623a7
push dword [esp + 0x130]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x58], 0
je 0x101623bf
push dword [esp + 0x54]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x64]
test edi, edi
je 0x101623ed
lea ebx, [esi + 4]
jmp 0x101623d6
add ebx, 0x18
dec edi
je 0x101623ed
cmp dword [ebx], 0
je 0x101623d0
push dword [ebx - 4]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
jmp 0x101623d0
cmp dword [esp + 0x68], 0
je 0x10162546
push esi
jmp 0x10162539
mov ebx, dword [esp + 0x78]
jmp 0x1016242e
mov ebx, dword [esp + 8]
cmp dword [esp + 0x19c], 0
jne 0x101622f6
jmp 0x1016232f
push eax
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
mov ebx, 4
movsd xmm0, qword [esp + 0x64]
mov esi, dword [esp + 0x6c]
movsd qword [esp + 0x78], xmm0
mov dword [esp + 0x80], esi
cmp dword [esp + 0x7c], esi
jbe 0x10162487
mov eax, dword [esp + 0x78]
test esi, esi
je 0x1016248d
lea ecx, [esi*8]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0xc], ecx
push ecx
push eax
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x101624a0
push dword [esp + 0xc]
push 8
call fcn.1001ac80
add esp, 8
jmp 0x101626a9
mov eax, dword [esp + 0x78]
jmp 0x101624a0
push eax
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
mov eax, 8
mov ecx, dword [esp + 0x70]
cmp dword [esp + 0x110], 0
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], esi
mov dword [ecx], 0
je 0x101624d4
push dword [esp + 0x10c]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x11c], 0
je 0x101624f2
push dword [esp + 0x118]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x128], 0
je 0x10162510
push dword [esp + 0x124]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x134], 0
je 0x1016252e
push dword [esp + 0x130]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x58], 0
je 0x10162546
push dword [esp + 0x54]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push esi
push edx
call fcn.10027330
add esp, 0xc
jmp 0x101626a9
mov dword [esp + 0x78], 0x1043819c
mov eax, 0x10438448
jmp 0x101625a8
mov eax, 0x10438458
mov dword [esp + 0x78], 0x1043819c
mov ecx, dword [esp + 0x1e8]
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
mov dword [ecx + 0xc], 0
push eax
push ecx
call fcn.100272b0
add esp, 8
jmp 0x101626a9
push 0x10438468
push eax
push ecx
call fcn.1002ac90
add esp, 0xc
jmp 0x101626a9
push 0x10438468
push ebx
push eax
call fcn.1002ac30
add esp, 0xc
jmp 0x101626a9
push 0x104384f4
push 0x2c
push 0x104384c8
call fcn.10027330
add esp, 0xc
jmp 0x101626a9
push 0x10438498
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10027330
add esp, 0xc
jmp 0x101626a9
mov ecx, dword [esp + 0x30]
mov eax, 0x104384b8
jmp 0x1016265a
push 0x10438438
push ebx
push ecx
call fcn.1002ac30
add esp, 0xc
jmp 0x101626a9
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x30]
mov eax, 0x10438438
mov dword [esp + 0x30], ecx
push eax
push dword [esp + 0x30]
push dword [esp + 0x18]
call fcn.1002ac90
add esp, 0xc
jmp 0x101626a9
push dword [esp + 0x1c]
push 8
call fcn.1001ac80
add esp, 8
jmp 0x101626a9
mov eax, 0x10438478
mov esi, 0x2b
mov edx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
jmp 0x1016257c
push 0x10438488
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10027330
add esp, 0xc
ud2