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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x158
mov dword [esp + 0x2c], ecx
call fcn.0056e831
lea edx, [eax + 0x1c]
mov dword [esp + 0x18], eax
mov edi, dword [eax + 0x1c]
lea eax, [esp + 0xc4]
lea ebp, [esp + 0x44]
xor esi, esi
mov dword [esp + 8], 0
and dword [eax], 0
and dword [eax - 0x84], 0
xor eax, eax
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
mov ecx, esi
test edi, edi
mov dword [esp + 0xc], eax
je 0x6410c3
mov ebx, ecx
mov ecx, dword [edi + 8]
mov esi, edi
lea eax, [edi + 0xc]
mov edi, dword [edi + 0xc]
cmp ecx, edx
mov ecx, esi
jne 0x640e1e
mov ecx, dword [esp + 8]
test cl, 8
jne 0x6410bd
mov dword [esp + 8], ecx
mov ecx, dword [esi + 0x14]
test byte [esp + 8], 4
mov dword [esp + 0x28], ecx
je 0x640e67
mov ecx, dword [esp + 0x28]
and ecx, 0xc
mov cl, 1
jne 0x640e18
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [eax], edi
cmp dword [ecx + 0x20], esi
jne 0x640e7f
mov eax, dword [esp + 0x18]
mov ecx, ebx
mov dword [eax + 0x20], ebx
mov eax, dword [esp + 0xc4]
cmp eax, 9
jb 0x640e9f
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jne 0x640f92
mov edx, dword [esp + 0x48]
mov ecx, eax
jmp 0x640ead
cmp eax, 8
jne 0x640f9b
mov edx, eax
push 8
pop ecx
cmp ecx, edx
jne 0x641075
inc edx
je 0x641262
lea ecx, [edx - 1]
mov dword [esp], eax
bsr ecx, ecx
xor eax, eax
dec eax
not ecx
shr eax, cl
cmp edx, 2
mov ecx, 0
mov edx, eax
mov eax, dword [esp]
cmovb edx, ecx
inc edx
mov dword [esp + 0x20], edx
je 0x641262
mov edx, eax
cmp eax, 9
mov dword [esp + 0x10], ebp
push 8
pop eax
mov dword [esp + 4], eax
jb 0x640f0c
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp]
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
mov eax, edx
mov edx, dword [esp + 0x20]
cmp eax, edx
ja 0x641271
mov ecx, eax
mov eax, dword [esp]
cmp edx, 9
jae 0x640fab
cmp eax, 9
jb 0x641075
and dword [esp + 0x40], 0
mov dword [esp + 0x14], ecx
shl ecx, 4
push ecx
push dword [esp + 0x14]
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x14]
mov ecx, edx
mov dword [esp + 0xc4], eax
shl ecx, 4
cmp edx, 0xfffffff
ja 0x641286
cmp ecx, 0x7ffffffd
mov dword [esp], ecx
jae 0x64128a
mov ecx, dword [esp + 0x10]
push 4
pop edx
call fcn.00404240
mov eax, dword [esp]
mov dword [esp + 0x24], eax
jmp 0x641075
mov eax, dword [esp + 0x44]
jmp 0x64107d
mov ecx, eax
lea edx, [esp + 0xc4]
mov eax, ebp
jmp 0x641081
cmp dword [esp + 4], edx
je 0x641075
cmp edx, 0xfffffff
ja 0x641262
mov edx, ecx
mov ecx, dword [esp + 0x20]
shl ecx, 4
cmp ecx, 0x7ffffffc
ja 0x641262
cmp eax, 9
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], ecx
jb 0x641024
cmp dword [esp + 4], 0xfffffff
ja 0x641262
mov eax, dword [esp + 4]
shl eax, 4
cmp eax, 0x7ffffffc
mov dword [esp + 4], eax
ja 0x641262
mov eax, ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 4]
push eax
push 4
call fcn.00404260
pop ecx
pop edx
test eax, eax
jne 0x641056
jmp 0x6412b8
mov al, byte [0xa71040]
push 4
pop edx
call fcn.004041e0
test eax, eax
je 0x6412b8
mov ecx, dword [esp + 0x14]
shl ecx, 4
push ecx
push dword [esp + 0x14]
push eax
mov dword [esp + 0xc], eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0xc]
add esp, 0xc
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x40], 1
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0xc4], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x48]
mov dword [esp], edx
shl ecx, 4
mov edx, dword [esp + 0x28]
mov dword [eax + ecx], esi
mov dword [eax + ecx + 4], 2
mov esi, ebx
movsd xmm0, qword [esp + 0xc8]
add dword [esp + 8], edx
mov edx, dword [esp + 0xc]
movsd qword [eax + ecx + 8], xmm0
mov eax, dword [esp]
inc dword [eax]
mov eax, dword [esp + 0x1c]
jmp 0x640e10
mov al, 1
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc4]
cmp eax, 9
jb 0x6410d3
mov eax, dword [esp + 0x48]
test eax, eax
je 0x6410f8
mov ecx, dword [esp + 0x18]
call fcn.0056e749
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x2c]
test al, al
je 0x6410f8
movzx eax, byte [esp + 0x1c]
or ecx, eax
xor eax, eax
inc eax
jmp 0x641104
xor ecx, ecx
cmp byte [esp + 0x1c], 0
setne cl
xor eax, eax
mov dword [edx], ecx
mov ecx, dword [esp + 0xc4]
cmp ecx, 9
jb 0x64111a
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
shl ecx, 4
test ecx, ecx
je 0x641164
mov esi, dword [ebp]
mov dword [esi + 0x10], eax
mov esi, dword [ebp]
mov edi, dword [esi]
cmp dword [edi], 0
je 0x641143
xor edx, edx
xor ebx, ebx
xchg dword [esi + 4], edx
add esi, 4
cmp edx, 1
cmovne esi, ebx
jmp 0x641153
mov dword [esi + 4], 0
add edi, 4
add esi, 4
xor ebx, ebx
inc ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], esi
add ebp, 0x10
add ecx, 0xfffffff0
jmp 0x64111d
mov ecx, dword [esp + 0x18]
add ecx, 0x18
call fcn.0056e7dc
lea esi, [esp + 0x4c]
xor ebx, ebx
lea edi, [esp + 0xd4]
mov eax, dword [esi - 0xc]
mov ecx, dword [esi + 0x78]
mov edx, dword [esi - 4]
mov dword [esp + 0xc], eax
mov eax, dword [esi - 8]
cmp ecx, 9
mov ebp, ecx
mov dword [esp + 8], ecx
cmovae ebp, edx
cmovae edx, ebx
cmovae ebx, ecx
push 0x1e
pop ecx
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0xd4]
lea esi, [esp + 0xcc]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov dword [edi - 0xc], ecx
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [edi + 0x78], ebx
mov dword [esi + 0x88], ebp
cmovae esi, eax
mov edi, ebp
add esi, 8
neg edi
xor ebx, ebx
inc ebx
lea eax, [edi + ebx]
cmp eax, 1
je 0x641211
mov dword [esp + 0x150], ebx
mov eax, dword [esi - 4]
cmp eax, 3
je 0x64120f
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x3c], edx
call fcn.0056e7bd
inc ebx
add esi, 0x10
jmp 0x6411d8
mov ebp, ebx
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov eax, ebp
inc ebp
lea ebx, [esp + 0xcc]
shl eax, 4
or eax, 4
lea edx, [edi + ebp]
cmp edx, 1
je 0x64124a
cmp esi, 9
mov edx, ebx
mov dword [esp + 0x150], ebp
cmovae edx, ecx
inc ebp
cmp dword [edx + eax], 3
lea eax, [eax + 0x10]
jne 0x641229
cmp esi, 9
jb 0x641257
push 4
pop edx
call fcn.00404240
add esp, 0x158
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x11
pop edx
mov ecx, str.capacity_overflowcreating_a_new_thread_ID____would_exceed_the_maximum_number_of_thread_ID_bits_specified_in___
push 0xa135cc
jmp 0x64127e
push 0x20
pop edx
mov ecx, str.assertion_failed:_new_cap___len_5
push 0xa13620
call fcn.0063cd70
pop eax
ud2
mov dword [esp + 0x24], ecx
lea eax, [esp + 0xc8]
mov ecx, dword [esp + 0x24]
and dword [eax], 0
mov dword [eax + 4], ecx
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0xa135bc
push 0x9fa280
push eax
call fcn.0063cff0
add esp, 0xc
ud2
push 4
pop ecx
mov edx, dword [esp + 0x30]
call fcn.0063c970
ud2