Function at 0x1001dd30
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

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 + 0x78], ecx
mov dword [esp + 0x6c], 8
mov dword [esp + 0x70], 0
mov dword [esp + 0x58], 8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x60], 0
lea edi, [esp + 0xc8]
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 + 0xb8], xmm0
movsd xmm0, qword [eax + 0x30]
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [eax + 0x28]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [eax + 0x20]
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [eax + 0x18]
movsd qword [esp + 0x98], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [eax]
movsd qword [esp + 0x80], xmm0
movaps xmm0, xmmword [0x100441d0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x94]
mov dword [esp + 0x114], ecx
mov ecx, dword [eax + 0x91]
movzx eax, byte [eax + 0x90]
mov dword [esp + 0x111], ecx
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ebx
mov byte [esp + 0x110], al
mov dword [esp + 0x11c], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x120], 0
movups xmmword [esp + 0x128], xmm0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov byte [esp + 0x150], 0
mov byte [esp + 0x151], al
call 0x1001deca
pop eax
mov dword [esp + 0x152], 0
mov dword [esp + 0x158], edx
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x50], eax
lea eax, [esp + 0x160]
mov dword [esp + 0x1e8], eax
xor eax, eax
jmp 0x1001df14
movaps xmm0, xmmword [esp + 0x30]
mov dword [eax + ecx*8 + 0xc], edi
mov dword [eax + ecx*8 + 8], esi
movlps qword [eax + ecx*8 + 0x10], xmm0
movzx eax, byte [esp + 0x153]
test al, al
je 0x1001df8b
movzx eax, byte [esp + 0x110]
movaps xmm0, xmmword [0x100441d0]
lea ecx, [esp + 0x118]
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 0
lea ecx, [esp + 0xc8]
movups xmmword [esp + 0x128], xmm0
mov byte [esp + 0x150], 0
mov dword [ecx + 0x74], 0
mov dword [ecx + 0x70], 0
mov dword [ecx + 0x7c], 0
mov dword [ecx + 0x78], 0
mov byte [esp + 0x151], al
mov byte [esp + 0x153], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov byte [esp + 0x152], 0
mov word [esp + 0x154], 0
mov ecx, dword [esp + 0x15c]
test ecx, ecx
je 0x1001f875
mov edi, dword [esp + 0x158]
lea esi, [ecx - 1]
lea edx, [edi + 1]
mov dword [esp + 0xc], edi
mov dword [esp + 0x158], edx
mov dword [esp + 0x15c], esi
movzx eax, byte [edi]
test eax, eax
je 0x1001e0e0
cmp al, byte [esp + 0x115]
mov ebx, eax
mov dword [esp + 0x18], esi
jae 0x1001e180
dec eax
cmp eax, 0xb
ja 0x1001e9e8
mov eax, dword [eax*4 + 0x1002086c]
mov edi, edx
mov dword [esp + 0x28], edx
mov dword [esp + 8], 0
mov dword [esp + 0x1c], 0x2f
xor ebx, ebx
mov dword [esp + 0x20], 0
xor esi, esi
mov edx, edi
add eax, dword [esp + 0x50]
jmp eax
test esi, esi
je 0x1001f3d8
lea eax, [ecx - 1]
mov dword [esp + 0x14], ecx
lea esi, [edi + 4]
xor edx, edx
mov dword [esp + 8], 0
xor ecx, ecx
mov dword [esp + 0x18], eax
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ebx, byte [edi + edx + 1]
cmp ecx, 0x3f
jne 0x1001e123
cmp bl, 2
jae 0x1001f3a0
mov dword [esp + 0x10], edx
mov edx, ebx
mov dword [esp + 0x30], esi
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 + 8], edi
or eax, edx
test bl, bl
jns 0x1001e197
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
add ecx, 7
mov edi, dword [esp + 0xc]
inc edx
inc esi
cmp dword [esp + 0x18], edx
jne 0x1001e110
jmp 0x1001f3c0
mov dword [esp + 8], 0
mov dword [esp + 0x1c], 0x2e
mov edx, ebx
jmp 0x1001e54e
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x1001f67d
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ecx, eax
sub ecx, esi
add ecx, 0xfffffffe
cmp ecx, ebx
jb 0x1001f695
mov edi, dword [esp + 0xc]
sub eax, ebx
mov dword [esp + 0x4c], edx
sub eax, esi
mov edx, eax
add edx, 0xfffffffe
test ebx, ebx
lea ecx, [edi + ebx]
mov dword [esp + 0x18], edx
lea eax, [esi + ecx + 2]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], edx
je 0x1001f6ad
mov ecx, edi
mov dword [esp + 0x24], eax
lea edi, [ebx - 1]
lea eax, [ecx + esi + 3]
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x2c], eax
movzx eax, byte [ecx + esi + 2]
lea ecx, [eax - 1]
cmp ecx, 3
ja 0x1001eb8a
mov ecx, dword [ecx*4 + 0x1002089c]
mov dword [esp + 0x28], eax
xor esi, esi
mov dword [esp + 0x1c], 0x3e
xor ebx, ebx
mov dword [esp + 0x20], 0
xor eax, eax
add ecx, dword [esp + 0x50]
jmp ecx
xor ebx, ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], eax
xor esi, esi
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0x1d8]
mov ecx, esi
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 + 0x100208cc]
movsd qword [esp + 0x1a8], xmm0
movsd xmm0, qword [esp + 0x1c0]
add eax, dword [esp + 0x50]
movsd qword [esp + 0x198], xmm0
jmp eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x10], ecx
mov ecx, ebx
dec cl
movzx ecx, cl
cmp dword [esp + 0x10], ecx
jb 0x1001f732
add eax, ecx
cmp dword [esp + 0x10], ecx
je 0x1001f732
movzx eax, byte [eax]
test eax, eax
je 0x1001f06e
cmp eax, 1
mov dword [esp + 0x28], ebx
jne 0x1001f08b
test esi, esi
mov dword [esp + 8], eax
je 0x1001f5fa
mov edx, 2
lea eax, [edi + 2]
mov dword [esp + 0x30], 0
xor edi, edi
xor ecx, ecx
sub edx, dword [esp + 0x14]
nop word [eax + eax]
movzx ebx, byte [eax - 1]
cmp ecx, 0x3f
jne 0x1001ea72
cmp bl, 2
jae 0x1001f3a0
mov dword [esp + 0x18], edx
mov edx, ebx
xor esi, esi
mov dword [esp + 0x10], edi
mov edi, 0
mov dword [esp + 8], ebx
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 + 0x10]
or edi, esi
mov esi, dword [esp + 0x30]
or esi, edx
test bl, bl
mov edx, esi
jns 0x1001f359
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x18]
add ecx, 7
inc eax
inc edx
cmp edx, 1
jne 0x1001ea60
jmp 0x1001f5e0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x42
lea edx, [ecx + esi + 3]
mov esi, edx
mov ebx, edx
and esi, 0xff00
and ebx, 0xffff0000
jmp 0x1001f274
mov edx, ebx
mov dword [esp + 8], 0
mov dword [esp + 0x1c], 0x3b
mov ebx, eax
mov dword [esp + 0x20], eax
jmp 0x1001e558
neg edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x48], edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], 0
mov dword [esp + 0x30], edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x1001f7a5
mov ebx, ecx
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
neg ebx
lea eax, [edi + 1]
add edi, ecx
xor ecx, ecx
mov dword [esp + 0x2c], ebx
movzx ebx, byte [eax - 1]
cmp ecx, 0x3f
jne 0x1001f0f6
cmp bl, 2
jae 0x1001f6a3
mov edx, ebx
mov dword [esp + 0x10], edi
xor edi, edi
mov esi, 0
mov dword [esp + 8], ebx
and dl, 0x7f
movzx edx, dl
shld edi, edx, cl
shl edx, cl
test cl, 0x20
cmovne edi, edx
cmovne edx, esi
mov esi, dword [esp + 0x20]
or esi, edi
mov edi, esi
mov esi, dword [esp + 0x1c]
or esi, edx
test bl, bl
jns 0x1001f14a
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
add ecx, 7
inc eax
mov dword [esp + 0x1c], esi
inc edi
inc ebx
jne 0x1001f0e0
jmp 0x1001f6c7
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x158], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x48], eax
not ecx
inc edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x15c], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x64], edx
cmp edx, ecx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
jne 0x1001f0b1
cmp esi, edi
mov dword [esp + 0x4c], ecx
jb 0x1001f86c
mov ecx, dword [esp + 0x2c]
mov eax, edx
mov ebx, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x3d
xor esi, esi
and eax, 0xff00
and ebx, 0xffff0000
mov dword [esp + 8], eax
not ecx
mov dword [esp + 0x18], ecx
jmp 0x1001e55e
xor eax, eax
mov dword [esp + 8], esi
mov esi, eax
jmp 0x1001e55e
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x18]
mov ebx, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x3c
xor esi, esi
and ebx, 0xffff0000
neg eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x15c], eax
mov eax, edx
and eax, 0xff00
mov dword [esp + 8], eax
jmp 0x1001e55e
mov edx, 6
mov dword [esp + 0x14], 0
xor esi, esi
jmp 0x1001f3eb
add edi, dword [esp + 0x14]
mov edx, edi
mov dword [esp + 0x158], edi
mov dword [esp + 0x15c], 0
mov dword [esp + 0x24], edx
xor esi, esi
mov edx, 0x13
mov dword [esp + 0x14], 0
movzx eax, bl
movzx ecx, dl
shl esi, 0x10
mov dword [esp + 0x158], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
mov dword [esp + 0x15c], 0
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x14]
or esi, ecx
mov ebx, esi
cmp bl, 0x4b
jne 0x100203c9
test edi, edi
je 0x1001f875
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x4c], ebx
cmp byte [eax + 0x3b], 0
je 0x1001f4e0
mov edi, dword [esp + 0x60]
test edi, edi
je 0x1001df0c
mov esi, dword [esp + 0x58]
test esi, esi
je 0x1001df0c
mov edx, dword [esi + 4]
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esi]
mov dword [esp + 0xc], edx
mov edx, dword [eax]
mov eax, dword [eax + 4]
cmp ebx, edi
mov dword [esp + 0x58], 8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 8], eax
jbe 0x1001f587
lea eax, [edi*8]
mov dword [esp + 0x18], ebx
lea eax, [eax + eax*2]
mov dword [esp + 0x1c], eax
push eax
push esi
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapReAlloc
mov ebx, eax
test eax, eax
je 0x10020745
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x70]
je 0x1001f593
jmp 0x1001f5a0
mov ecx, dword [eax]
mov edx, dword [esp + 0x60]
movdqu xmm0, xmmword [eax + 0x18]
mov ebx, dword [eax + 4]
mov edi, dword [eax + 0x14]
mov esi, dword [eax + 0x10]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], ecx
mov ecx, edx
pshufd xmm0, xmm0, 0xe8
sub ecx, 1
movdqa xmmword [esp + 0x30], xmm0
jb 0x1001f53e
test eax, eax
je 0x1001f53e
lea ecx, [ecx + ecx*2]
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov esi, ebx
mov edi, dword [eax + ecx*8 + 4]
xor edi, ebx
mov ebx, dword [eax + ecx*8]
xor ebx, dword [esp + 0x10]
or ebx, edi
mov ebx, esi
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
je 0x1001defa
cmp edx, dword [esp + 0x5c]
jne 0x1001f555
lea ecx, [esp + 0x58]
call fcn.100211a0
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
lea ecx, [edx + edx*2]
movaps xmm0, xmmword [esp + 0x30]
inc edx
mov dword [eax + ecx*8 + 4], ebx
mov ebx, dword [esp + 0x10]
mov dword [eax + ecx*8], ebx
mov dword [eax + ecx*8 + 0xc], edi
mov dword [eax + ecx*8 + 8], esi
movlps qword [eax + ecx*8 + 0x10], xmm0
mov dword [esp + 0x60], edx
movzx eax, byte [esp + 0x153]
jmp 0x1001df14
mov ebx, esi
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x70]
jne 0x1001f5a0
lea ecx, [esp + 0x6c]
call fcn.100211a0
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
lea ecx, [edx + edx*2]
mov esi, dword [esp + 0xc]
inc edx
mov dword [eax + ecx*8], ebx
mov dword [eax + ecx*8 + 4], edi
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
mov dword [eax + ecx*8 + 0xc], esi
mov dword [eax + ecx*8 + 8], edi
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*8 + 0x14], ebx
mov dword [eax + ecx*8 + 0x10], edi
mov dword [esp + 0x74], edx
movzx eax, byte [esp + 0x153]
jmp 0x1001df14
mov edx, dword [esp + 0xc]
add edx, dword [esp + 0x14]
mov dword [esp + 0x158], edx
mov dword [esp + 0x15c], 0
mov ebx, dword [esp + 8]
mov dword [esp + 0x24], edx
xor esi, esi
mov edx, 0x13
mov dword [esp + 0x14], 0
jmp 0x1001f3eb
mov ecx, dword [esp + 8]
mov edx, 0x35
xor esi, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], ecx
jmp 0x1001f3eb
mov eax, dword [esp + 0xc]
lea edi, [eax + esi + 2]
mov dword [esp + 0x24], edi
jmp 0x1001f6b5
mov edx, 6
jmp 0x1001f3ad
lea eax, [edi + esi + 2]
mov dword [esp + 0x24], eax
mov edx, 0x13
mov dword [esp + 0x14], 0
jmp 0x1001f3ad
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 8]
add eax, dword [esp + 0x68]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], 0
xor esi, esi
mov edx, 0x13
mov dword [esp + 0x24], eax
jmp 0x1001f3e3
mov dword [esp + 0x24], eax
xor esi, esi
mov edx, 0x13
jmp 0x1001f3e3
mov eax, dword [esp + 0x48]
jmp 0x1001f6e5
mov dword [esp + 0x24], edx
jmp 0x1001f736
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
cmp ebx, 0x15
mov dword [esp + 0x2c], eax
jae 0x1001f8a4
cmp ebx, 1
jbe 0x1001ffc7
mov ecx, dword [esp + 0x2c]
mov edx, ebx
push 1
call fcn.10021060
add esp, 4
jmp 0x1001ffc7
movzx eax, byte [0x104ff0b8]
mov eax, dword [0x104ff078]
test eax, eax
jne 0x1001f8c6
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10020755
mov dword [0x104ff078], 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 + 0x10], eax
je 0x10020755
movzx eax, byte [0x104ff0b8]
mov eax, dword [0x104ff078]
test eax, eax
jne 0x1001f912
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10020769
mov dword [0x104ff078], eax
push pe_nt_image_headers32
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
mov dword [esp + 0xc], eax
je 0x10020769
mov eax, dword [esp + 0x2c]
xor edi, edi
mov dword [esp + 0x64], 0x10
mov dword [esp + 0x54], ebx
lea ecx, [eax + 0x38]
add eax, 0xffffffe8
mov dword [esp + 0x68], eax
xor eax, eax
mov dword [esp + 0x7c], ecx
nop dword [eax]
mov ecx, dword [esp + 0x2c]
mov esi, ebx
mov edx, eax
mov dword [esp + 0x50], edi
sub esi, eax
lea eax, [eax + eax*2]
mov dword [esp + 8], edx
cmp esi, 2
mov dword [esp + 0x30], esi
lea edi, [ecx + eax*8]
jae 0x1001fa60
mov eax, dword [esp + 0x30]
mov ecx, ebx
mov esi, ecx
sub esi, edx
jb 0x100206d0
cmp ecx, ebx
ja 0x100206d0
jae 0x1001fab0
cmp eax, 0xa
jae 0x1001fab0
lea esi, [edx + 0xa]
cmp esi, ebx
cmovae esi, ebx
mov dword [esp + 0x48], esi
sub esi, edx
jb 0x10020705
mov ecx, edi
cmp eax, 2
mov edi, eax
mov eax, 1
cmovb edi, eax
mov edx, esi
push edi
call fcn.10021060
add esp, 4
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x50]
cmp edi, dword [esp + 0x64]
jne 0x1001fac2
lea eax, [edi + edi]
mov dword [esp + 0x64], eax
movzx eax, byte [0x104ff0b8]
mov eax, dword [0x104ff078]
test eax, eax
jne 0x1001fa05
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100206ec
mov dword [0x104ff078], eax
mov ecx, edi
shl ecx, 4
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100206ec
lea ecx, [edi*8]
push ecx
mov edi, dword [esp + 0x10]
push edi
push eax
mov dword [esp + 0x3c], eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push edi
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 8]
jmp 0x1001fac6
mov edx, dword [edi + 0x24]
mov ecx, edi
mov esi, dword [edi + 0x20]
mov edi, dword [edi + 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [ecx + 0xc]
cmp esi, edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], edi
sbb edx, ecx
jae 0x1001fdf0
cmp dword [esp + 0x30], 2
jne 0x1001fe0c
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov eax, 2
lea ecx, [edx + 2]
jmp 0x1001feb4
mov dword [esp + 0x48], ecx
mov edi, dword [esp + 0x50]
cmp edi, dword [esp + 0x64]
je 0x1001f9dc
mov eax, dword [esp + 0xc]
mov dword [eax + edi*8], esi
mov dword [eax + edi*8 + 4], edx
inc edi
mov dword [esp + 0xc], eax
cmp edi, 2
jb 0x1001ff80
mov esi, dword [esp + 0xc]
jmp 0x1001fb4d
mov eax, dword [esp + 0x10]
mov edi, esi
mov esi, dword [esp + 0xc]
sub ebx, eax
push ebx
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add ecx, dword [esp + 8]
mov dword [esi + eax*8 + 8], ecx
mov ecx, dword [esp + 0x14]
mov dword [esi + eax*8 + 0xc], ecx
mov ecx, dword [esp + 0x18]
not eax
add ecx, eax
lea eax, [edx + 8]
shl ecx, 3
push ecx
push eax
push edx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
cmp edi, 1
jbe 0x1001fde0
mov eax, dword [esi + edi*8 - 8]
mov ecx, dword [esi + edi*8 - 4]
add ecx, eax
cmp ecx, ebx
je 0x1001fbb0
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + edi*8 - 0x10]
cmp edx, eax
jbe 0x1001fbb0
cmp edi, 3
jb 0x1001ff78
mov ecx, dword [esp + 0xc]
lea esi, [edx + eax]
lea ebx, [edi - 3]
mov ecx, dword [ecx + edi*8 - 0x18]
cmp ecx, esi
jbe 0x1001fdc9
cmp edi, 4
jb 0x1001ff8e
mov esi, edi
mov edi, dword [esp + 0xc]
add edx, ecx
cmp dword [edi + esi*8 - 0x20], edx
mov edx, dword [esp + 0x54]
mov edi, esi
jbe 0x1001fbc2
jmp 0x1001ff9d
mov edx, ebx
cmp edi, 3
jb 0x1001fbc6
mov ecx, dword [esp + 0xc]
lea ebx, [edi - 3]
mov ecx, dword [ecx + edi*8 - 0x18]
cmp ecx, eax
jb 0x1001fbc9
lea ebx, [edi - 2]
cmp edi, ebx
jbe 0x10020659
lea eax, [ebx + 1]
cmp edi, eax
jbe 0x1002066b
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], edi
mov esi, dword [eax + ebx*8 + 8]
mov edi, dword [eax + ebx*8 + 0xc]
mov ecx, dword [eax + ebx*8 + 4]
add edi, esi
mov dword [esp + 0x28], esi
mov eax, edi
sub eax, ecx
mov dword [esp + 0x1c], eax
jb 0x100206a8
cmp edi, edx
ja 0x100206bc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], ebx
mov edx, dword [eax + ebx*8]
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + eax*8]
lea eax, [edx + edx*2]
mov dword [esp + 8], edx
lea esi, [ecx + eax*8]
lea eax, [edi + edi*2]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x18]
sub ecx, edx
dec eax
cmp ecx, edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
lea eax, [eax + ebx*8]
mov dword [esp + 0x24], eax
jae 0x1001fd10
lea eax, [ecx*8]
mov dword [esp + 0x1c], ecx
lea ebx, [eax + eax*2]
push ebx
push esi
mov edi, dword [esp + 0x18]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 8]
add ebx, edi
test eax, eax
jle 0x1001faf0
cmp dword [esp + 0x1c], 0
jle 0x1001faf0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x4c]
lea eax, [eax + ecx*8]
nop dword [eax]
mov ecx, dword [ebx - 0x10]
mov edx, dword [ebx - 0xc]
mov edi, 0
cmp ecx, dword [esi - 0x10]
sbb edx, dword [esi - 0xc]
setb dl
setb cl
adc edi, 0xffffffff
movzx edx, dl
neg edx
test cl, cl
lea edx, [edx + edx*2]
lea esi, [esi + edx*8]
lea edx, [edi + edi*2]
lea ebx, [ebx + edx*8]
mov ecx, ebx
cmovne ecx, esi
cmp esi, dword [esp + 0x30]
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 0x1001faf0
add eax, 0xffffffe8
cmp ebx, dword [esp + 0x10]
ja 0x1001fca0
jmp 0x1001faf0
mov eax, dword [esp + 8]
lea eax, [eax*8]
lea ebx, [eax + eax*2]
push ebx
mov eax, dword [esp + 0x34]
mov edi, eax
push eax
push dword [esp + 0x18]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 8]
add ebx, dword [esp + 0x10]
test eax, eax
jle 0x1001fdc0
cmp dword [esp + 0x1c], eax
jle 0x1001fdc0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x10]
nop word [eax + eax]
mov edx, dword [esi + 8]
cmp edx, dword [eax + 8]
mov edx, dword [esi + 0xc]
sbb edx, dword [eax + 0xc]
mov edx, eax
cmovb edx, esi
movsd xmm1, qword [edx + 8]
movsd xmm0, qword [edx]
movsd qword [edi + 8], xmm1
movsd xmm1, qword [edx + 0x10]
setae dl
movsd qword [edi], xmm0
movzx edx, dl
lea edx, [edx + edx*2]
lea eax, [eax + edx*8]
setb dl
movsd qword [edi + 0x10], xmm1
add edi, 0x18
cmp eax, ebx
jae 0x1001faf6
movzx edx, dl
lea edx, [edx + edx*2]
lea esi, [esi + edx*8]
cmp esi, ecx
jb 0x1001fd60
jmp 0x1001faf6
mov eax, dword [esp + 0x10]
jmp 0x1001faf6
mov edx, dword [esp + 0x54]
cmp ecx, eax
jae 0x1001fbc6
jmp 0x1001fbc9
mov edi, 1
jmp 0x1001ff80
cmp dword [esp + 0x30], 2
jne 0x1001fe4d
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov eax, 2
lea ecx, [edx + 2]
jmp 0x1001f97b
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], esi
lea ebx, [edx + eax*8]
mov edx, dword [esp + 0x1c]
mov eax, 2
nop word cs:[eax + eax]
nop
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 0x1001fe8f
inc eax
add ebx, 0x18
cmp dword [esp + 0x30], eax
jne 0x1001fe30
jmp 0x1001fe8b
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], esi
lea ebx, [edx + eax*8]
mov edx, dword [esp + 0x1c]
mov eax, 2
nop word cs:[eax + eax]
nop
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 0x1001fe8f
inc eax
add ebx, 0x18
cmp dword [esp + 0x30], eax
jne 0x1001fe70
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x54]
cmp dword [esp + 0x20], esi
lea ecx, [eax + edx]
sbb dword [esp + 0x1c], edi
mov edi, dword [esp + 0x18]
jae 0x1001f97b
cmp ecx, edx
jb 0x10020721
cmp ecx, ebx
ja 0x10020710
cmp eax, 2
jb 0x1001f97b
mov dword [esp + 0x48], ecx
mov ecx, eax
shr eax, 1
mov esi, edi
mov dword [esp + 0x30], ecx
add ecx, edx
mov edx, dword [esp + 0x68]
lea ecx, [ecx + ecx*2]
lea edx, [edx + ecx*8]
nop word [eax + eax]
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0x170], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x168], xmm1
movsd qword [esp + 0x160], 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 + 0x170]
movsd qword [edx + 0x10], xmm0
movsd xmm0, qword [esp + 0x160]
movsd xmm1, qword [esp + 0x168]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
add edx, 0xffffffe8
dec eax
jne 0x1001fef0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x30]
jmp 0x1001f97b
mov edi, 2
nop dword [eax]
mov eax, dword [esp + 0x48]
cmp eax, ebx
jb 0x1001f950
jmp 0x1001ffa5
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x54]
mov edi, 3
jmp 0x1001ff84
mov eax, dword [esp + 0x48]
mov ebx, edx
jmp 0x1001ff84
push dword [esp + 0xc]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0x10]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
cmp word [esp + 0xd2], 5
mov dword [esp + 0x198], 4
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
jae 0x10020013
mov eax, dword [esp + 0x80]
xor eax, 0x2e
or eax, dword [esp + 0x84]
je 0x100200c6
lea esi, [esp + 0x80]
jmp 0x10020028
cmp dword [esp + 0x100], 0
je 0x100200c6
mov esi, dword [esp + 0xf8]
mov edx, dword [esp + 0x1bc]
lea eax, [esp + 0x80]
lea ecx, [esp + 0x160]
push dword [ebp + 0xc]
push eax
push esi
call fcn.10021270
add esp, 0xc
movzx eax, byte [esp + 0x160]
cmp al, 0x4b
jne 0x1002035d
mov eax, dword [esp + 0x16c]
movsd xmm0, qword [esp + 0x164]
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.10021570
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 + 0x30], edi
mov dword [edi + ecx*4 + 8], edx
movsd xmm0, qword [eax]
movsd qword [edi + ecx*4], xmm0
jmp 0x10020123
mov dword [esp + 0x160], 1
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
lea ecx, [esp + 0x198]
xor edx, edx
call fcn.10021570
mov esi, dword [esp + 0x1a0]
mov edx, dword [esp + 0x198]
mov ecx, dword [esp + 0x168]
lea eax, [esi + esi*2]
mov dword [esp + 0x30], edx
mov dword [edx + eax*4 + 8], ecx
movsd xmm0, qword [esp + 0x160]
movsd qword [edx + eax*4], xmm0
inc esi
mov ebx, 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x1a0], esi
jmp 0x10020172
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x1c3]
lea eax, [esi + esi*2]
inc esi
add ebx, 1
mov dword [esp + 0x30], edx
movsd xmm0, qword [ecx]
mov ecx, dword [ecx + 8]
adc dword [esp + 0x10], 0
mov dword [edx + eax*4 + 8], ecx
movsd qword [edx + eax*4], xmm0
mov dword [esp + 0x1a0], esi
cmp word [esp + 0xd2], 5
jae 0x100201a0
mov eax, ebx
or eax, dword [esp + 0x10]
je 0x1002024a
lea eax, [ebx - 1]
cmp eax, dword [esp + 0x100]
jae 0x10020268
imul eax, eax, 0x38
jmp 0x100201b0
cmp dword [esp + 0x100], ebx
jbe 0x10020268
imul eax, ebx, 0x38
add eax, dword [esp + 0xf8]
mov edx, dword [esp + 0x1bc]
lea ecx, [esp + 0x160]
push dword [ebp + 0xc]
lea edi, [esp + 0x84]
push edi
push eax
call fcn.10021270
add esp, 0xc
movzx eax, byte [esp + 0x160]
cmp al, 0x4b
jne 0x100202d8
lea ecx, [esp + 0x164]
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 0x10020140
lea ecx, [esp + 0x198]
mov edx, esi
call fcn.10021570
mov edx, dword [esp + 0x198]
mov esi, dword [esp + 0x1a0]
jmp 0x10020144
mov eax, dword [esp + 0x80]
xor eax, 0x2e
or eax, dword [esp + 0x84]
lea eax, [esp + 0x80]
jne 0x100201b7
movsd xmm0, qword [esp + 0x198]
mov edi, dword [esp + 0x1a0]
movsd qword [esp + 0x160], xmm0
mov dword [esp + 0x168], edi
mov ebx, dword [esp + 0x160]
cmp dword [esp + 0x164], edi
jbe 0x100204f8
test edi, edi
je 0x100204e5
lea eax, [edi*4]
lea esi, [eax + eax*2]
push esi
push ebx
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapReAlloc
mov ebx, eax
test eax, eax
jne 0x100204f8
mov ecx, 4
mov edx, esi
call fcn.10002ca0
jmp 0x10020780
movsd xmm1, qword [esp + 0x168]
movsd xmm0, qword [esp + 0x161]
mov ecx, dword [esp + 0x78]
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 0x100204ce
mov ebx, dword [esp + 0x30]
lea edi, [ebx + 4]
jmp 0x10020346
add edi, 0xc
dec esi
je 0x100203af
cmp dword [edi], 0
je 0x10020340
push dword [edi - 4]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
jmp 0x10020340
movsd xmm1, qword [esp + 0x168]
movsd xmm0, qword [esp + 0x161]
mov ecx, dword [esp + 0x78]
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 0x100203f4
push ebx
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
jmp 0x100203f4
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x24]
mov edx, eax
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 + 0xd8], 0
je 0x10020412
push dword [esp + 0xd4]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xe4], 0
je 0x10020430
push dword [esp + 0xe0]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xf0], 0
je 0x1002044e
push dword [esp + 0xec]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xfc], 0
je 0x1002046c
push dword [esp + 0xf8]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x5c], 0
je 0x10020484
push dword [esp + 0x58]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x6c]
test edi, edi
je 0x100204bd
lea ebx, [esi + 4]
jmp 0x100204a6
add ebx, 0x18
dec edi
je 0x100204bd
cmp dword [ebx], 0
je 0x100204a0
push dword [ebx - 4]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
jmp 0x100204a0
cmp dword [esp + 0x70], 0
je 0x10020613
push esi
jmp 0x10020606
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0x19c], 0
jne 0x100203b9
jmp 0x100203f4
push ebx
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
mov ebx, 4
movsd xmm0, qword [esp + 0x6c]
mov esi, dword [esp + 0x74]
movsd qword [esp + 0x160], xmm0
mov dword [esp + 0x168], esi
mov eax, dword [esp + 0x160]
cmp dword [esp + 0x164], esi
jbe 0x1002056d
test esi, esi
je 0x1002055a
lea ecx, [esi*8]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x10], ecx
push ecx
push eax
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x1002056d
mov edx, dword [esp + 0x10]
mov ecx, 8
call fcn.10002ca0
jmp 0x10020780
push eax
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
mov eax, 8
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0xd8], 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 0x100205a1
push dword [esp + 0xd4]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xe4], 0
je 0x100205bf
push dword [esp + 0xe0]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xf0], 0
je 0x100205dd
push dword [esp + 0xec]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xfc], 0
je 0x100205fb
push dword [esp + 0xf8]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x5c], 0
je 0x10020613
push dword [esp + 0x58]
push 0
push dword [0x104ff078]
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, esi
push eax
call fcn.10003c10
add esp, 4
jmp 0x10020780
mov dword [esp + 0x160], 0x104f5948
mov edx, 0x104f5b08
jmp 0x1002067b
mov edx, 0x104f5b18
mov dword [esp + 0x160], 0x104f5948
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.rsIndex_out_of_bounds
mov dword [ecx + 0xc], 0
call fcn.10003210
jmp 0x10020780
mov edx, edi
push 0x104f5b28
call fcn.10003fe0
add esp, 4
jmp 0x10020780
mov ecx, edi
push 0x104f5b28
call fcn.100038f0
add esp, 4
jmp 0x10020780
mov edx, 0x2c
mov ecx, str.assertion_failed:_end___start__end___len
push 0x104f5bb4
call fcn.10003c10
add esp, 4
jmp 0x10020780
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
push 0x104f5b58
call fcn.10003c10
add esp, 4
jmp 0x10020780
mov ecx, dword [esp + 0xc]
mov eax, 0x104f5b78
jmp 0x1002072e
mov edx, ebx
push 0x104f5af8
call fcn.100038f0
add esp, 4
jmp 0x10020780
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
mov eax, 0x104f5af8
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 8]
push eax
call fcn.10003fe0
add esp, 4
jmp 0x10020780
mov edx, dword [esp + 0x1c]
mov ecx, 8
call fcn.10002ca0
jmp 0x10020780
mov eax, 0x104f5b38
mov esi, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
jmp 0x10020649
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
push 0x104f5b48
call fcn.10003c10
add esp, 4
ud2