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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x1c]
cmp eax, 0x3fffffff
ja 0x45d922
lea esi, [eax*4]
cmp esi, 0x7fffffff
jae 0x45d922
movzx ebx, word [ecx + 0x38]
mov edi, dword [ecx + 0x18]
test esi, esi
mov dword [esp + 0x3c], eax
je 0x45d502
movzx eax, byte [0x5e1184]
xor ecx, ecx
mov edx, esi
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
test eax, eax
jne 0x45d507
mov ecx, 2
mov edx, esi
call sym.alloc::raw_vec::handle_error::he63c9115d026ec98
mov eax, 2
push esi
push edi
mov dword [esp + 0x40], eax
push eax
call sym._memcpy
add esp, 0xc
mov esi, dword [ebp + 8]
mov edx, 0x30
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [esp + 0x20], eax
mul edx
mov edx, eax
jo 0x45d93f
cmp edx, 0x7ffffffc
ja 0x45d93f
test edx, edx
mov word [esp + 0xa], bx
je 0x45d6ce
mov ebx, dword [esi + 0x24]
movzx eax, byte [0x5e1184]
xor ecx, ecx
mov edi, edx
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
test eax, eax
je 0x45d938
mov ecx, dword [esp + 0x20]
mov esi, eax
test ecx, ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], 0
je 0x45d6de
mov ecx, edi
lea edi, [ebx + 0x28]
xor eax, eax
jmp 0x45d616
movsd xmm1, qword [esp + 0x10]
movsd xmm2, qword [esp + 0x18]
add ebx, 0x30
add edi, 0x30
add ecx, 0xffffffd0
movsd qword [esp + 0x58], xmm2
movsd qword [esp + 0x50], xmm1
movsd xmm1, qword [esp + 0x60]
movsd xmm2, qword [esp + 0x68]
movsd qword [esp + 0x30], xmm2
movsd qword [esp + 0x28], xmm1
mov dword [esi], eax
movlps qword [esi + 4], xmm0
movzx eax, word [esp + 0x26]
movsd xmm0, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x30]
movsd qword [esi + 0xc], xmm0
movsd qword [esi + 0x14], xmm1
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
movsd qword [esi + 0x1c], xmm0
movsd qword [esi + 0x24], xmm1
mov word [esi + 0x2c], ax
mov eax, dword [esp + 0xc]
add esi, 0x30
inc eax
cmp dword [esp + 0x20], eax
je 0x45d6de
test ecx, ecx
je 0x45d6de
mov dword [esp + 0xc], eax
movzx eax, word [ebx + 0x2c]
mov dword [esp + 4], ecx
mov word [esp + 0x26], ax
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x45d670
mov eax, dword [eax]
push dword [edi - 4]
push dword [edi - 8]
push edi
lea ecx, [esp + 0x6c]
push ecx
call eax
add esp, 0x10
lea ecx, [esp + 0x65]
mov edx, dword [esp + 0x60]
movzx eax, byte [esp + 0x64]
movsd xmm0, qword [ecx]
mov ecx, dword [ecx + 7]
movsd qword [esp + 0x28], xmm0
mov dword [esp + 0x2f], ecx
jmp 0x45d676
movzx eax, byte [edi - 8]
xor edx, edx
mov dword [esp + 0x10], edx
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x2f]
movsd xmm0, qword [esp + 0x28]
lea ecx, [esp + 0x15]
mov dword [esp + 0x40], edx
mov dword [ecx + 7], eax
movsd qword [ecx], xmm0
lea ecx, [ebx + 0x18]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
push dword [ebx + 0x14]
push dword [ebx + 0x10]
push ecx
lea ecx, [esp + 0x6c]
push ecx
call eax
add esp, 0x10
xor eax, eax
cmp dword [ebx], 1
mov ecx, dword [esp + 4]
jne 0x45d590
movsd xmm0, qword [edi - 0x24]
mov eax, 1
jmp 0x45d590
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 4
mov eax, dword [esp + 0x20]
movsd xmm0, qword [esp + 0x44]
xor ecx, ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 8]
movsd qword [esp + 0x50], xmm0
mov esi, dword [eax + 0x34]
mov edx, esi
mov dword [esp + 4], esi
shl edx, 5
cmp esi, 0x7ffffff
ja 0x45d94d
cmp edx, 0x7ffffffc
ja 0x45d94d
test edx, edx
je 0x45d7ca
mov ebx, dword [eax + 0x30]
movzx eax, byte [0x5e1184]
xor ecx, ecx
mov esi, edx
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
test eax, eax
je 0x45d946
mov ecx, dword [esp + 4]
mov edi, eax
test ecx, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0
je 0x45d7da
mov eax, esi
xor esi, esi
test eax, eax
je 0x45d7da
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x10]
lea ecx, [ebx + 0x1c]
mov eax, dword [eax]
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push ecx
lea ecx, [esp + 0x7c]
push ecx
call eax
add esp, 0x10
movups xmm0, xmmword [ebx]
movsd xmm1, qword [esp + 0x78]
mov eax, dword [esp + 0xc]
inc esi
add ebx, 0x20
movups xmmword [esp + 0x60], xmm0
movsd xmm0, qword [esp + 0x70]
movsd qword [edi + 0x18], xmm1
add eax, 0xffffffe0
movsd qword [edi + 0x10], xmm0
movsd xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
add edi, 0x20
cmp dword [esp + 4], esi
jne 0x45d760
jmp 0x45d7da
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 4
mov eax, dword [esp + 4]
mov edx, dword [ebp + 8]
movsd xmm0, qword [esp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [edx]
movsd qword [esp + 0x28], xmm0
test eax, eax
je 0x45d80b
movzx esi, word [esp + 0xa]
cmp eax, 1
jne 0x45d815
movss xmm0, dword [0x576680]
jmp 0x45d82a
movzx esi, word [esp + 0xa]
xorps xmm0, xmm0
jmp 0x45d82a
movups xmm1, xmmword [edx + 8]
movss xmm0, dword [0x576684]
mov ecx, dword [edx + 0x14]
mov eax, dword [edx + 0x10]
movlhps xmm0, xmm1
mov edx, dword [esp + 0x58]
movsd xmm1, qword [esp + 0x50]
movsd xmm2, qword [esp + 0x28]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x30]
movsd qword [esp + 0x80], xmm1
movsd qword [esp + 0x8c], xmm2
mov dword [esp + 0x94], edx
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x10]
mov word [esp + 0x98], si
mov dword [esp + 0x9a], eax
movzx eax, word [esp + 0x14]
mov word [esp + 0x9e], ax
movzx eax, byte [0x5e1184]
xor ecx, ecx
mov edx, 0x40
call sym.std::sys::alloc::windows::process_heap_alloc::hc2bfe060f1f208f4
test eax, eax
je 0x45d927
movsd xmm0, qword [esp + 0x98]
mov edx, 0x586e28
movsd qword [eax + 0x38], xmm0
movsd xmm0, qword [esp + 0x90]
movsd qword [eax + 0x30], xmm0
movsd xmm0, qword [esp + 0x88]
movsd qword [eax + 0x28], xmm0
movsd xmm0, qword [esp + 0x80]
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [esp + 0x78]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x70]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call sym.alloc::raw_vec::capacity_overflow::h3a7a441d4f300da6
mov ecx, 8
mov edx, 0x40
call sym.alloc::alloc::handle_alloc_error::h3ca6a9ac69c8e3db
jmp 0x45d952
mov ecx, 4
mov edx, edi
call sym.alloc::raw_vec::handle_error::he63c9115d026ec98
jmp 0x45d952
mov ecx, 4
mov edx, esi
call sym.alloc::raw_vec::handle_error::he63c9115d026ec98
ud2