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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov ebx, ecx
mov ecx, dword [ecx]
call 0x464918
pop eax
mov dword [esp + 0x44], eax
mov edi, dword [ecx + 0x2c]
test edi, edi
je 0x465237
mov edx, dword [ecx + 0x28]
cmp edi, edx
ja 0x465327
mov eax, dword [ecx + 0x20]
mov edx, dword [ecx + 0x38]
mov esi, dword [eax + edi*4 - 4]
cmp esi, edx
ja 0x465338
test esi, esi
mov dword [esp + 0x2c], ecx
je 0x464994
js 0x46535e
mov eax, dword [0x5c6108]
test eax, eax
jne 0x46496e
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x465350
mov dword [0x5c6108], eax
push esi
push 8
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
mov dword [esp + 0xc], eax
je 0x465350
cmp edi, 0x1fffffff
mov dword [esp + 0x48], ebx
jbe 0x4649ac
jmp 0x465349
mov dword [esp + 0xc], 1
cmp edi, 0x1fffffff
mov dword [esp + 0x48], ebx
ja 0x465349
lea ebx, [edi*4]
test ebx, ebx
js 0x465349
je 0x4649f2
mov eax, dword [0x5c6108]
test eax, eax
jne 0x4649d4
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4649e1
mov dword [0x5c6108], eax
push ebx
push 8
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x4649f7
mov ecx, 4
mov edx, ebx
call dbg.handle_alloc_error
jmp 0x46534e
mov eax, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], 0
movzx eax, byte [0x5c6170]
mov eax, dword [0x5c6108]
test eax, eax
jne 0x464a56
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x465316
mov dword [0x5c6108], eax
push 0x40
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x465316
movsd xmm0, qword [esp + 0x88]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
movsd qword [eax + 0x38], xmm0
movsd xmm0, qword [esp + 0x80]
movsd qword [eax + 0x30], xmm0
movsd xmm0, qword [esp + 0x78]
movsd qword [eax + 0x28], xmm0
movsd xmm0, qword [esp + 0x70]
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [esp + 0x68]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov eax, dword [esi]
or eax, dword [esi + 4]
je 0x464ae9
movsd xmm2, qword [esi + 8]
movaps xmm1, xmmword [0x54b530]
movups xmm0, xmmword [esi + 0x10]
movlhps xmm1, xmm2
jmp 0x464aec
xorps xmm1, xmm1
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], 0x556200
movups xmmword [eax], xmm1
movups xmmword [eax + 0x10], xmm0
mov edi, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
cmp edx, edi
ja 0x4652c8
test edx, edx
je 0x4651eb
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x38]
mov eax, dword [eax + edx*4 - 4]
cmp eax, edi
ja 0x465365
mov ecx, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 4], 0
mov dword [esp + 0x4c], edx
lea eax, [ecx + 0x20]
mov ecx, ecx
add ecx, 0x30
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], ecx
nop dword [eax]
mov dword [esp + 0x38], edi
mov ebx, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
cmp ebx, edi
ja 0x46527c
mov ecx, dword [esp + 0x38]
cmp ecx, ebx
jae 0x46523f
mov eax, dword [esi + 0x20]
mov edx, dword [eax + ecx*4]
cmp dword [esp + 4], edx
ja 0x465282
mov edi, dword [esi + 0x38]
mov dword [esp + 0x10], edx
cmp edx, edi
ja 0x465289
mov ebx, dword [esi + 0x30]
mov dword [esp + 0x28], 0x54a008
mov eax, dword [0x54a11c]
mov esi, dword [esp + 0x14]
cmp eax, 3
je 0x464bd5
lea eax, [esp + 0x28]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x40]
mov dword [esp + 0x50], eax
xor edx, edx
lea ecx, [0x54a11c]
push 0x54cf18
push 0x54ce8c
lea eax, [esp + 0x58]
push eax
call dbg.call
add esp, 0xc
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x10]
mov ecx, dword [edx]
add ebx, eax
sub edi, eax
mov eax, 0x54ce6c
mov dword [esp + 0x18], ebx
mov ecx, dword [ecx*4 + 0x4653cc]
add ecx, dword [esp + 0x44]
jmp ecx
cmp dword [esi + 0x34], 0
je 0x465205
push dword [esi + 0x30]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x2c]
cmp dword [esi + 0x24], 0
mov edi, dword [esp + 0x48]
je 0x465223
push dword [esi + 0x20]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x2c]
push esi
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x14]
mov dword [edi], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x14]
mov eax, 0x5562f4
jmp 0x46524f
mov edx, ebx
push eax
call dbg.panic_bounds_check
add esp, 4
jmp 0x46534e
mov dword [esp + 0x10], ebx
jmp 0x4652cc
mov eax, 0x556304
jmp 0x465298
mov dword [esp + 0x20], str._home_user_.cargo_registry_src_index.crates.io_6f17d22bba15001f_csv_1.1.6_src_byte_record.rstaU
jmp 0x4652cc
mov ecx, dword [esp + 4]
push eax
mov esi, dword [esp + 0x18]
call dbg.slice_index_order_fail
add esp, 4
jmp 0x46534e
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x10]
mov edx, edi
push dword [esp + 0x20]
mov esi, dword [esp + 0x18]
call dbg.slice_end_index_len_fail
add esp, 4
jmp 0x46534e
mov ecx, 8
mov edx, 0x40
call dbg.handle_alloc_error
jmp 0x46534e
mov ecx, edi
push 0x556200
call dbg.slice_end_index_len_fail
add esp, 4
ud2
mov ecx, esi
push 0x5561f0
call dbg.slice_end_index_len_fail
add esp, 4
ud2
call sym.alloc::raw_vec::capacity_overflow::hd0578b62e5d0dfac
ud2
mov ecx, 1
mov edx, esi
call dbg.handle_alloc_error
ud2
call sym.alloc::raw_vec::capacity_overflow::hd0578b62e5d0dfac
ud2
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0x5561f0
jmp 0x4652cc