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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
mov edi, dword [edx]
mov eax, dword [ebp + 8]
test edi, edi
je 0x45136b
mov dword [esp + 0x18], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x14], ecx
mov ecx, eax
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp + 0x30], ecx
movzx eax, word [edi + 0x192]
lea ecx, [edi + 0x10c]
mov dword [esp + 0xc], edi
mov ebx, 0xffffffff
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
movzx eax, ax
mov dword [esp + 0x10], eax
lea eax, [eax*4]
lea edi, [eax + eax*2]
nop word [eax + eax]
test edi, edi
je 0x451320
lea eax, [ecx + 0xc]
mov edx, dword [esp + 0x30]
mov esi, ebx
mov dword [esp + 4], eax
mov eax, dword [ecx + 8]
mov ebx, edx
sub ebx, eax
cmovb eax, edx
push eax
push dword [ecx + 4]
push dword [esp + 0x10]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
mov ecx, 0xff
cmovne ebx, eax
xor eax, eax
test ebx, ebx
mov ebx, esi
setne al
cmovs eax, ecx
mov ecx, dword [esp + 4]
inc ebx
add edi, 0xfffffff4
cmp al, 1
je 0x4512c0
movzx eax, al
test eax, eax
je 0x451347
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
jmp 0x45132a
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
mov ebx, eax
mov ecx, dword [esp + 0x14]
sub ecx, 1
jb 0x451492
mov edi, dword [edi + ebx*4 + 0x198]
mov dword [esp + 0x14], ecx
jmp 0x45128b
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0xc]
cmp dword [eax], 0
je 0x451365
push dword [esp + 8]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [esp + 0x18]
jmp 0x45137a
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov ebx, edx
cmp esi, 0x80000000
jne 0x4513ea
lea eax, [ebx + ebx*2]
mov edx, dword [ebp + 0xc]
movsd xmm0, qword [edi + eax*8 + 0x10]
movsd qword [esp + 0x48], xmm0
movsd xmm0, qword [edi + eax*8]
movsd xmm1, qword [edi + eax*8 + 8]
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [edx + 0x10]
movsd qword [esp + 0x40], xmm1
movsd qword [edi + eax*8 + 0x10], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [edi + eax*8 + 8], xmm1
movsd qword [edi + eax*8], xmm0
movsd xmm0, qword [esp + 0x48]
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
movsd qword [ecx + 0x10], xmm0
movsd qword [ecx], xmm2
movsd qword [ecx + 8], xmm1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [eax + 8]
mov dword [esp + 0x18], ecx
mov dword [esp + 4], eax
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x451418
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x452095
mov dword [0x5a1188], eax
push 0x198
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x452095
mov ecx, dword [esp + 4]
mov dword [eax + 0x108], 0
mov dword [eax + 0x10c], esi
mov dword [eax + 0x110], edi
mov dword [eax + 0x114], ecx
mov ecx, dword [ebp + 0xc]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [eax], xmm0
movsd qword [eax + 8], xmm1
movsd xmm0, qword [ecx + 0x10]
mov ecx, dword [esp + 0x18]
movsd qword [eax + 0x10], xmm0
mov word [eax + 0x192], 1
mov dword [ebx], eax
mov dword [ebx + 4], 0
mov dword [ebx + 8], 1
mov byte [ecx], 6
jmp 0x4513e2
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x18]
cmp edx, 0x80000000
jne 0x4514b0
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x7c]
jmp 0x45137a
cmp word [esp + 0x2c], 0xb
jae 0x451546
sub eax, ebx
lea edi, [ebx + ebx*2]
mov ebx, eax
mov eax, dword [esp + 0x24]
lea esi, [eax + edi*4]
jbe 0x451563
lea ecx, [ebx*4]
lea eax, [eax + edi*4 + 0xc]
lea ecx, [ecx + ecx*2]
push ecx
push esi
push eax
mov dword [esp + 0x10], edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 4]
shl ebx, 3
lea edx, [ebx + ebx*2]
mov dword [esi], eax
mov eax, dword [esp + 8]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 8], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0xc]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
lea ecx, [esi + edi*8 + 0x18]
lea eax, [esi + edi*8]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm2
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov ecx, dword [esp + 0x24]
add esp, 0xc
jmp 0x45159a
mov esi, 4
cmp ebx, 5
mov dword [esp + 4], edx
jae 0x4515ce
mov al, 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], eax
jmp 0x45160e
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x30]
mov dword [esi], edx
mov edx, dword [ebp + 0xc]
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
mov esi, dword [esp + 0xc]
movsd xmm0, qword [edx + 0x10]
movsd xmm2, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm2
movsd xmm0, qword [esp + 0x48]
mov eax, dword [esp + 0x2c]
movsd qword [esi + edi*8 + 0x10], xmm0
inc eax
movsd xmm0, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
movsd qword [esi + edi*8 + 8], xmm1
movsd qword [esi + edi*8], xmm0
mov word [esi + 0x192], ax
jmp 0x451f17
je 0x4515ec
cmp ebx, 6
jne 0x4515fa
mov esi, 5
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
jmp 0x45160e
mov al, 1
mov dword [esp + 0x20], ebx
mov esi, ebx
mov dword [esp + 0x1c], eax
jmp 0x45160e
add ebx, 0xfffffff9
mov esi, 6
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ebx
movzx eax, byte [0x5a11e8]
mov ecx, 0x198
mov edx, 8
call fcn.004329c0
test eax, eax
je 0x452095
mov dword [eax + 0x108], 0
mov ebx, dword [esp + 0x24]
mov ecx, esi
mov dword [esp + 0x28], esi
not esi
mov dword [esp + 0x10], eax
movzx edx, word [edi + 0x192]
lea ecx, [ecx + ecx*2]
add esi, edx
mov dword [esp + 0x34], edx
mov word [eax + 0x192], si
cmp esi, 0xc
mov edx, dword [ebx + ecx*4]
movsd xmm0, qword [edi + ecx*8 + 0x10]
mov eax, dword [ebx + ecx*4 + 8]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + ecx*4 + 4]
movsd qword [esp + 0x68], xmm0
mov dword [esp + 0x2c], eax
movsd xmm0, qword [edi + ecx*8]
movsd xmm1, qword [edi + ecx*8 + 8]
mov dword [esp + 0x54], edx
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
jae 0x4520e7
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
inc ecx
sub eax, ecx
cmp eax, esi
jne 0x4520a4
lea ebx, [ecx + ecx*2]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
lea edx, [esi*4]
lea edx, [edx + edx*2]
lea ecx, [ecx + ebx*4]
add eax, 0x10c
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
shl esi, 3
lea eax, [edi + ebx*8]
lea ecx, [esi + esi*2]
push ecx
push eax
mov esi, dword [esp + 0x18]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x28]
cmp byte [esp + 0x1c], 0
mov word [edi + 0x192], ax
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
movsd qword [esp + 0x3c], xmm0
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 0x44], xmm1
movsd qword [esp + 0x4c], xmm0
mov eax, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x48]
movsd xmm2, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x38]
mov dword [esp + 0x70], eax
mov eax, edi
mov edi, esi
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x60], xmm2
movsd qword [esp + 0x58], xmm1
cmovne edi, eax
mov eax, dword [esp + 0x20]
movzx edx, word [edi + 0x192]
lea ecx, [eax + eax*2]
movzx esi, dx
lea ebx, [edi + ecx*4 + 0x10c]
sub esi, eax
jbe 0x4517fa
lea eax, [edi + 0x10c]
mov dword [esp + 0x28], ecx
lea eax, [eax + ecx*4 + 0xc]
lea ecx, [esi*4]
lea ecx, [ecx + ecx*2]
push ecx
push ebx
push eax
mov dword [esp + 0x30], edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 4]
shl esi, 3
lea edx, [esi + esi*2]
mov dword [ebx], eax
mov eax, dword [esp + 8]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 8], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x28]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [edi + ebx*8]
lea ecx, [edi + ebx*8 + 0x18]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm2
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x30]
add esp, 0xc
jmp 0x451833
mov eax, dword [esp + 4]
mov esi, dword [ebp + 0xc]
mov dword [ebx], eax
mov eax, dword [esp + 8]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 8], eax
mov ebx, ecx
movsd xmm0, qword [esi + 0x10]
movsd xmm2, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm2
movsd xmm0, qword [esp + 0x48]
inc edx
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
movsd qword [edi + ebx*8 + 0x10], xmm0
movsd xmm0, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
movsd qword [edi + ebx*8 + 8], xmm1
movsd qword [edi + ebx*8], xmm0
mov word [edi + 0x192], dx
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x70]
movsd xmm0, qword [esp + 0x68]
movsd xmm2, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
cmp edi, 0x80000000
mov dword [esp + 0xb8], eax
movsd qword [esp + 0xb0], xmm0
movsd qword [esp + 0xa8], xmm1
movsd qword [esp + 0xa0], xmm2
je 0x451f17
mov eax, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb0]
movsd xmm2, qword [esp + 0xa0]
movsd xmm1, qword [esp + 0xa8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x98], eax
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0x80], xmm2
mov eax, dword [edx + 0x108]
test eax, eax
je 0x451ddc
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x74], 0
mov dword [esp + 0x24], ecx
mov ecx, edx
movzx ecx, word [edx + 0x190]
movzx edx, word [eax + 0x192]
mov esi, eax
movzx ebx, cx
cmp edx, 0xb
mov dword [esp + 0x20], edx
jb 0x451f26
mov edi, 4
cmp cx, 5
jae 0x451959
mov al, 1
mov dword [esp + 0x1c], eax
jmp 0x451986
movzx edi, cx
je 0x45196c
cmp edi, 6
jne 0x451976
mov edi, 5
xor ebx, ebx
jmp 0x45197e
mov al, 1
mov ebx, edi
mov dword [esp + 0x1c], eax
jmp 0x451986
add ebx, 0xfffffff9
mov edi, 6
mov dword [esp + 0x1c], 0
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x4519a9
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4520b8
mov dword [0x5a1188], eax
push 0x1c8
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4520b8
mov dword [eax + 0x108], 0
mov ecx, eax
mov dword [esp + 4], eax
mov edx, edi
not edi
mov dword [esp + 0xc], esi
movzx eax, word [esi + 0x192]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], edx
add edi, eax
mov word [ecx + 0x192], di
lea ecx, [edx + edx*2]
cmp edi, 0xc
mov edx, dword [esi + ecx*4 + 0x10c]
movsd xmm0, qword [esi + ecx*8 + 0x10]
mov dword [esp + 0x14], edx
mov edx, dword [esi + ecx*4 + 0x110]
mov dword [esp + 0x54], edx
mov edx, dword [esi + ecx*4 + 0x114]
movsd qword [esp + 0x68], xmm0
movsd xmm0, qword [esi + ecx*8]
movsd xmm1, qword [esi + ecx*8 + 8]
mov dword [esp + 0x2c], edx
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
jae 0x4520c7
mov ecx, dword [esp + 8]
lea edx, [ecx + 1]
sub eax, edx
cmp eax, edi
jne 0x4520a4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov dword [esp + 0x78], edx
lea esi, [edx + edx*2]
lea edx, [edi*4]
lea edx, [edx + edx*2]
add eax, 0x10c
add ecx, 0x10c
lea eax, [eax + esi*4]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
shl edi, 3
lea ecx, [edi + edi*2]
lea eax, [eax + esi*8]
push ecx
push eax
mov esi, dword [esp + 0x18]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov word [ecx + 0x192], ax
lea eax, [esp + 0x3c]
movsd xmm1, qword [esp + 0x60]
movsd xmm0, qword [esp + 0x58]
movsd qword [eax + 8], xmm1
movsd xmm1, qword [esp + 0x68]
movsd qword [eax], xmm0
movsd qword [eax + 0x10], xmm1
movzx edi, word [esi + 0x192]
lea ecx, [edi + 1]
cmp edi, 0xc
jae 0x4520d8
mov edx, dword [esp + 0x20]
sub edx, dword [esp + 8]
cmp edx, ecx
jne 0x4520a4
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
inc dword [esp + 0x74]
shl edx, 2
add eax, 0x198
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
lea ecx, [ecx + eax*4 + 0x198]
push edx
push ecx
push dword [esp + 0x10]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor eax, eax
nop word [eax + eax]
mov ecx, eax
cmp eax, edi
mov edx, dword [esi + ecx*4 + 0x198]
adc eax, 0
cmp ecx, edi
mov dword [edx + 0x108], esi
mov word [edx + 0x190], cx
jae 0x451b53
cmp eax, edi
jbe 0x451b30
cmp byte [esp + 0x1c], 0
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x48]
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
lea ecx, [ebx + 1]
mov dword [esp + 8], ecx
cmovne edx, dword [esp + 0xc]
mov dword [esp + 0x70], eax
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm2
lea eax, [ebx + ebx*2]
mov dword [esp + 0x20], eax
movzx esi, word [edx + 0x192]
lea edi, [edx + eax*4 + 0x10c]
mov dword [esp + 4], edx
cmp ecx, esi
jbe 0x451bf5
mov eax, dword [esp + 0x34]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x28]
mov dword [edi + 8], eax
lea eax, [esp + 0x84]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 0x20]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm2
jmp 0x451c8e
lea ecx, [ecx + ecx*2]
lea eax, [edx + 0x10c]
mov dword [esp + 0x1c], ecx
lea eax, [eax + ecx*4]
mov ecx, esi
sub ecx, ebx
mov dword [esp + 0x78], ecx
lea ecx, [ecx*4]
lea ecx, [ecx + ecx*2]
push ecx
push edi
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov dword [edi], eax
mov eax, dword [esp + 0x28]
lea ecx, [ecx + edx*8]
mov edx, dword [esp + 0x78]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x24]
shl edx, 3
lea edx, [edx + edx*2]
mov dword [edi + 4], eax
lea eax, [esp + 0x84]
mov edi, dword [esp + 0x20]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 4]
lea eax, [eax + edi*8]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm2
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x10]
add esp, 0xc
mov eax, edi
movsd xmm0, qword [esp + 0x48]
lea edi, [esi + 2]
movsd qword [edx + eax*8 + 0x10], xmm0
movsd xmm0, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
movsd qword [edx + eax*8 + 8], xmm1
movsd qword [edx + eax*8], xmm0
lea eax, [ebx + 2]
cmp eax, edi
jae 0x451ce1
lea ecx, [edx + 0x198]
mov edx, dword [esp + 8]
lea eax, [ecx + eax*4]
lea edx, [ecx + edx*4]
mov ecx, esi
sub ecx, ebx
shl ecx, 2
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x10]
add esp, 0xc
mov ecx, dword [esp + 0x30]
cmp dword [esp + 8], edi
lea eax, [esi + 1]
mov dword [edx + ebx*4 + 0x19c], ecx
mov word [edx + 0x192], ax
jae 0x451d1c
dec ebx
nop dword [eax]
mov eax, dword [edx + ebx*4 + 0x1a0]
lea ecx, [ebx + 2]
inc ebx
cmp esi, ebx
mov dword [eax + 0x108], edx
mov word [eax + 0x190], cx
jne 0x451d00
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
movsd xmm0, qword [esp + 0x68]
movsd xmm2, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edi, 0x80000000
mov dword [esp + 0xb8], eax
movsd qword [esp + 0xb0], xmm0
movsd qword [esp + 0xa8], xmm1
movsd qword [esp + 0xa0], xmm2
je 0x451f17
mov eax, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb0]
movsd xmm2, qword [esp + 0xa0]
movsd xmm1, qword [esp + 0xa8]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x98], eax
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0x80], xmm2
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], esi
mov eax, dword [edx + 0x108]
test eax, eax
jne 0x451924
jmp 0x451de8
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x74], 0
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x14], edi
mov esi, dword [ebx]
mov dword [esp + 0x50], eax
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm2
test esi, esi
je 0x4520f8
mov edi, dword [ebx + 4]
movzx eax, byte [0x5a11e8]
mov ecx, 0x1c8
mov edx, 8
call fcn.004329c0
test eax, eax
je 0x4520b8
cmp edi, dword [esp + 0x74]
lea ecx, [edi + 1]
mov dword [eax + 0x108], 0
mov word [eax + 0x192], 0
mov dword [eax + 0x198], esi
mov dword [esi + 0x108], eax
mov word [esi + 0x190], 0
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jne 0x45210c
movzx ecx, word [eax + 0x192]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
cmp ecx, 0xb
jae 0x452120
lea edx, [ecx + 1]
mov word [eax + 0x192], dx
lea edx, [ecx + ecx*2]
mov dword [eax + edx*4 + 0x10c], edi
mov dword [eax + edx*4 + 0x114], ebx
mov ebx, dword [esp + 0x54]
mov dword [eax + edx*4 + 0x110], ebx
movsd xmm0, qword [esp + 0x4c]
movsd qword [eax + edx*8 + 0x10], xmm0
movsd xmm0, qword [esp + 0x3c]
movsd xmm1, qword [esp + 0x44]
movsd qword [eax + edx*8 + 8], xmm1
movsd qword [eax + edx*8], xmm0
mov dword [eax + ecx*4 + 0x19c], esi
inc ecx
mov dword [esi + 0x108], eax
mov word [esi + 0x190], cx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x7c]
mov byte [ecx], 6
inc dword [eax + 8]
jmp 0x4513e2
lea eax, [edx + 1]
cmp cx, dx
mov dword [esp + 8], eax
lea eax, [ebx + 1]
mov dword [esp + 4], eax
lea eax, [ebx + ebx*2]
lea edi, [esi + eax*4 + 0x10c]
mov dword [esp + 0xc], eax
jae 0x45200d
lea eax, [esi + 0x10c]
sub edx, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x2c], edx
lea edx, [edx*4]
lea eax, [eax + eax*2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x10]
lea eax, [eax + ecx*4]
lea ecx, [edx + edx*2]
push ecx
push edi
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov dword [edi], eax
mov eax, dword [esp + 0x28]
shl edx, 3
lea ecx, [esi + ecx*8]
lea edx, [edx + edx*2]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov edi, dword [esp + 0xc]
lea eax, [esi + edi*8]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
lea eax, [esp + 0x84]
lea ecx, [esi + ebx*4 + 0x1a0]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esi + edi*8], xmm0
movsd qword [esi + edi*8 + 8], xmm1
movsd xmm0, qword [eax + 0x10]
mov eax, dword [esp + 4]
movsd qword [esi + edi*8 + 0x10], xmm0
lea eax, [esi + eax*4 + 0x198]
push dword [esp + 0x14]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x45204b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 8], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
lea edi, [esp + 0x84]
movsd xmm0, qword [edi + 0x10]
movsd qword [esi + ecx*8 + 0x10], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esi + ecx*8 + 8], xmm1
movsd qword [esi + ecx*8], xmm0
lea eax, [edx + 2]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp dword [esp + 4], eax
mov dword [esi + ebx*4 + 0x19c], edx
mov edx, dword [esp + 0x20]
mov word [esi + 0x192], di
jae 0x451f17
inc edx
mov eax, dword [esi + ebx*4 + 0x19c]
inc ebx
cmp edx, ebx
mov dword [eax + 0x108], esi
mov word [eax + 0x190], bx
jne 0x452077
jmp 0x451f17
mov ecx, 8
mov edx, 0x198
call fcn.00531970
mov ecx, str.assertion_failed:_src.len____dst.len__X
mov edx, 0x28
push 0x53d52c
call fcn.00532d60
mov ecx, 8
mov edx, 0x1c8
call fcn.00531970
mov ecx, edi
mov edx, 0xb
push 0x53d53c
call fcn.00532d00
mov edx, 0xc
push 0x53d54c
call fcn.00532d00
mov ecx, esi
mov edx, 0xb
push 0x53d53c
call fcn.00532d00
mov ecx, 0x59e39c
mov edx, 0x2b
push 0x53d428
call fcn.00532d60
mov ecx, 0x53d4b3
mov edx, 0x30
push 0x53d4e4
call fcn.00532d60
mov ecx, str.assertion_failed:_idx___CAPACITY_rustc_595bc6f00369475047538fdae1ff8cea692ac385library_alloc_srccollections_btree_node.rsassertion_failed:_edge.height__self.height___1
mov edx, 0x20
push 0x53d4f4
call fcn.00532d60
int3