Function at 0x558310
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 esi, dword [ebp + 8]
test edi, edi
je 0x558419
mov dword [esp + 0x14], ecx
mov eax, dword [edx + 4]
mov dword [esp + 0x7c], edx
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], eax
mov dword [esp], edx
mov dword [esp + 0x28], ecx
movzx eax, word [edi + 0x192]
lea ecx, [edi + 0x10c]
mov dword [esp + 8], edi
mov ebx, 0xffffffff
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], eax
lea eax, [eax*4]
lea edi, [eax + eax*2]
test edi, edi
je 0x5583d0
lea eax, [ecx + 0xc]
mov edx, dword [esp + 0x28]
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 + 8]
call sub.msvcrt.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 0x558370
movzx eax, al
test eax, eax
je 0x5583f7
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
jmp 0x5583da
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov ebx, esi
mov eax, dword [esp + 0x10]
sub eax, 1
jb 0x558540
mov edi, dword [edi + ebx*4 + 0x198]
mov dword [esp + 0x10], eax
jmp 0x558348
mov eax, dword [ebp + 8]
mov edi, dword [esp + 8]
cmp dword [eax], 0
je 0x558413
push dword [esp]
push 0
push dword [0x5920d8]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x14]
jmp 0x55842a
mov eax, esi
mov esi, dword [esi]
mov ebx, edx
mov edi, dword [eax + 4]
cmp esi, 0x80000000
jne 0x55849a
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 + 0x14], ecx
mov dword [esp + 4], eax
movzx eax, byte [0x592110]
mov eax, dword [0x5920d8]
test eax, eax
jne 0x5584c7
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x559126
mov dword [0x5920d8], eax
push 0x198
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x559126
mov ecx, dword [esp + 4]
mov dword [eax + 0x108], 0
mov word [eax + 0x192], 1
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 + 0x14]
movsd qword [eax + 0x10], xmm0
mov dword [ebx], eax
mov dword [ebx + 4], 0
mov dword [ebx + 8], 1
mov byte [ecx], 6
jmp 0x558492
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax]
cmp edx, 0x80000000
jne 0x55855d
mov edi, dword [esp]
mov ebx, dword [esp + 0x7c]
jmp 0x55842a
cmp si, 0xb
jae 0x5585ee
mov eax, dword [esp + 0x18]
lea edi, [ebx + ebx*2]
sub esi, ebx
lea ebx, [eax + edi*4]
jbe 0x55860b
lea ecx, [esi*4]
lea eax, [eax + edi*4 + 0xc]
lea ecx, [ecx + ecx*2]
push ecx
push ebx
push eax
mov dword [esp + 0x10], edx
call sub.msvcrt.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]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 8]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
lea ecx, [ebx + edi*8 + 0x18]
lea eax, [ebx + 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.msvcrt.dll_memmove
mov ecx, dword [esp + 0x20]
add esp, 0xc
jmp 0x558641
mov ecx, 4
cmp ebx, 5
mov dword [esp + 4], edx
jae 0x558675
mov al, 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], eax
jmp 0x5586b5
mov eax, dword [esp]
mov esi, dword [esp + 0x28]
mov dword [ebx], edx
mov edx, dword [ebp + 0xc]
mov dword [ebx + 4], eax
mov dword [ebx + 8], esi
mov ebx, dword [esp + 8]
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 + 0xc]
movsd qword [ebx + edi*8 + 0x10], xmm0
inc eax
movsd xmm0, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
movsd qword [ebx + edi*8 + 8], xmm1
movsd qword [ebx + edi*8], xmm0
mov word [ebx + 0x192], ax
jmp 0x558f9d
je 0x558693
cmp ebx, 6
jne 0x5586a1
mov ecx, 5
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
jmp 0x5586b5
mov al, 1
mov dword [esp + 0x20], ebx
mov ecx, ebx
mov dword [esp + 0x1c], eax
jmp 0x5586b5
add ebx, 0xfffffff9
mov ecx, 6
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ecx
mov ebx, ecx
call fcn.0054a0a0
mov dword [eax + 0x108], 0
mov esi, ebx
mov dword [esp + 0xc], eax
movzx ecx, word [edi + 0x192]
not esi
add esi, ecx
mov dword [esp + 0x30], ecx
lea ecx, [ebx + ebx*2]
mov word [eax + 0x192], si
mov eax, dword [esp + 0x18]
cmp esi, 0xc
movsd xmm0, qword [edi + ecx*8 + 0x10]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x10], edx
mov edx, dword [eax + ecx*4 + 4]
mov eax, dword [eax + ecx*4 + 8]
movsd qword [esp + 0x68], xmm0
movsd xmm0, qword [edi + ecx*8]
movsd xmm1, qword [edi + ecx*8 + 8]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], eax
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
jae 0x559178
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
inc ecx
sub eax, ecx
cmp eax, esi
jne 0x559135
lea ebx, [ecx + ecx*2]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
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.msvcrt.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 + 0x14]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x24]
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]
mov esi, edx
lea ebx, [edi + ecx*4 + 0x10c]
sub esi, eax
jbe 0x558884
lea eax, [edi + 0x10c]
mov dword [esp + 0x24], 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 + 0x24], edx
call sub.msvcrt.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]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x24]
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.msvcrt.dll_memmove
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x5588bc
mov eax, dword [esp + 4]
mov esi, dword [ebp + 0xc]
mov dword [ebx], eax
mov eax, dword [esp]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x28]
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 + 0x14]
mov esi, dword [esp + 0xc]
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 + 0x10]
mov ebx, dword [esp + 0x34]
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 0x558f9d
mov eax, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb0]
movsd xmm2, qword [esp + 0xa0]
movsd xmm1, qword [esp + 0xa8]
mov edx, dword [esp + 8]
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 0x558e7c
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x78], 0
mov dword [esp + 0x18], ecx
mov ecx, edx
movzx ebx, word [edx + 0x190]
movzx edx, word [eax + 0x192]
mov edi, eax
cmp edx, 0xb
mov dword [esp + 0x20], edx
jb 0x558fac
cmp bx, 5
jae 0x5589e1
mov al, 1
mov dword [esp], 4
mov dword [esp + 0x54], eax
jmp 0x558a1b
cmp ebx, 5
je 0x5589fe
cmp ebx, 6
jne 0x558a09
xor ebx, ebx
mov dword [esp + 0x54], 0
mov dword [esp], 5
jmp 0x558a1b
mov al, 1
mov dword [esp], ebx
mov dword [esp + 0x54], eax
jmp 0x558a1b
add ebx, 0xfffffff9
mov dword [esp], 6
mov dword [esp + 0x54], 0
movzx eax, byte [0x592110]
mov eax, dword [0x5920d8]
test eax, eax
jne 0x558a3d
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x559149
mov dword [0x5920d8], eax
push 0x1c8
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x559149
mov dword [eax + 0x108], 0
mov word [eax + 0x192], 0
mov dword [esp + 4], eax
mov esi, eax
mov eax, dword [esp]
mov edx, edi
movzx ecx, word [edi + 0x192]
mov dword [esp + 8], edx
mov edi, eax
mov dword [esp], eax
not edi
mov dword [esp + 0x1c], ecx
add edi, ecx
lea ecx, [eax + eax*2]
mov word [esi + 0x192], di
cmp edi, 0xc
mov eax, dword [edx + ecx*4 + 0x10c]
movsd xmm0, qword [edx + ecx*8 + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [edx + ecx*4 + 0x110]
mov dword [esp + 0x2c], eax
mov eax, dword [edx + ecx*4 + 0x114]
movsd qword [esp + 0x68], xmm0
movsd xmm0, qword [edx + ecx*8]
movsd xmm1, qword [edx + ecx*8 + 8]
mov dword [esp + 0x34], eax
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
jae 0x559158
mov eax, dword [esp]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xc], esi
lea edx, [eax + 1]
sub ecx, edx
cmp ecx, edi
jne 0x559135
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp + 0x1c], 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.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 8]
shl edi, 3
lea ecx, [edi + edi*2]
lea eax, [eax + esi*8]
push ecx
push eax
mov esi, dword [esp + 0x14]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp]
mov ecx, dword [esp + 8]
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 0x559169
mov edx, dword [esp + 0x20]
sub edx, dword [esp]
cmp edx, ecx
jne 0x559135
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
inc dword [esp + 0x78]
shl edx, 2
add eax, 0x198
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
lea ecx, [ecx + eax*4 + 0x198]
push edx
push ecx
push dword [esp + 8]
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor eax, eax
nop dword [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 0x558bf3
cmp eax, edi
jbe 0x558bd0
cmp byte [esp + 0x54], 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], ecx
cmovne edx, dword [esp + 8]
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 0x558c94
mov eax, dword [esp + 0x30]
mov dword [edi], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x24]
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 0x558d2d
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 + 0x54], ecx
lea ecx, [ecx*4]
lea ecx, [ecx + ecx*2]
push ecx
push edi
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
lea ecx, [ecx + edx*8]
mov edx, dword [esp + 0x54]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x18]
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.msvcrt.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 0x558d7f
lea ecx, [edx + 0x198]
mov edx, dword [esp]
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.msvcrt.dll_memmove
mov edx, dword [esp + 0x10]
add esp, 0xc
mov ecx, dword [esp + 0x28]
cmp dword [esp], edi
lea eax, [esi + 1]
mov dword [edx + ebx*4 + 0x19c], ecx
mov word [edx + 0x192], ax
jae 0x558dbc
dec ebx
nop word [eax + 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 0x558da0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
movsd xmm0, qword [esp + 0x68]
movsd xmm2, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp edi, 0x80000000
mov dword [esp + 0xb8], eax
movsd qword [esp + 0xb0], xmm0
movsd qword [esp + 0xa8], xmm1
movsd qword [esp + 0xa0], xmm2
je 0x558f9d
mov eax, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb0]
movsd xmm2, qword [esp + 0xa0]
movsd xmm1, qword [esp + 0xa8]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x30], edi
mov dword [esp + 0x98], eax
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0x80], xmm2
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], esi
mov eax, dword [edx + 0x108]
test eax, eax
jne 0x5589ad
jmp 0x558e88
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x78], 0
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], 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 0x559189
mov edi, dword [ebx + 4]
call fcn.0054a050
cmp edi, dword [esp + 0x78]
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 0x55919d
movzx ecx, word [eax + 0x192]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
cmp ecx, 0xb
jae 0x5591b1
lea edx, [ecx + 1]
lea esi, [ecx + ecx*2]
movsd xmm0, qword [esp + 0x4c]
movsd xmm2, qword [esp + 0x3c]
movsd xmm1, qword [esp + 0x44]
mov word [eax + 0x192], dx
mov dword [eax + esi*4 + 0x10c], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + esi*4 + 0x114], ebx
mov dword [eax + esi*4 + 0x110], edi
mov edi, dword [esp + 0xc]
movsd qword [eax + esi*8 + 0x10], xmm0
movsd qword [eax + esi*8 + 8], xmm1
movsd qword [eax + esi*8], xmm2
mov dword [eax + ecx*4 + 0x19c], edi
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x108], eax
mov word [edi + 0x190], dx
mov eax, dword [esp + 0x7c]
mov byte [ecx], 6
inc dword [eax + 8]
jmp 0x558492
lea eax, [ebx + ebx*2]
lea ecx, [ebx + 1]
lea esi, [edx + 1]
cmp bx, dx
mov dword [esp], eax
lea eax, [edi + eax*4 + 0x10c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
jae 0x5590a4
lea eax, [edi + 0x10c]
mov dword [esp + 0x10], eax
lea eax, [ecx + ecx*2]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
lea eax, [eax + ecx*4]
mov dword [esp + 0x2c], eax
mov eax, edx
sub eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
lea eax, [eax*4]
lea ecx, [eax + eax*2]
mov dword [esp + 0x34], eax
push ecx
push dword [esp + 0xc]
push dword [esp + 0x34]
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, dword [esp + 0x24]
shl edx, 3
lea edx, [edx + edx*2]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
lea eax, [edi + eax*8]
lea ecx, [edi + ecx*8]
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
lea eax, [esp + 0x84]
mov ecx, dword [esp]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [edi + ecx*8], xmm0
movsd qword [edi + ecx*8 + 8], xmm1
movsd xmm0, qword [eax + 0x10]
mov eax, dword [esp + 4]
movsd qword [edi + ecx*8 + 0x10], xmm0
lea eax, [edi + eax*4 + 0x198]
lea ecx, [edi + ebx*4 + 0x1a0]
push dword [esp + 0x34]
push eax
push ecx
call sub.msvcrt.dll_memmove
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x5590e5
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 8], eax
lea ecx, [esp + 0x84]
mov eax, dword [esp]
movsd xmm0, qword [ecx + 0x10]
movsd qword [edi + eax*8 + 0x10], xmm0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [edi + eax*8 + 8], xmm1
movsd qword [edi + eax*8], xmm0
add edx, 2
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 4], edx
mov dword [edi + ebx*4 + 0x19c], eax
mov word [edi + 0x192], si
jae 0x558f9d
mov eax, dword [edi + ebx*4 + 0x19c]
inc ebx
cmp esi, ebx
mov dword [eax + 0x108], edi
mov word [eax + 0x190], bx
jne 0x559108
jmp 0x558f9d
mov ecx, 8
mov edx, 0x198
call fcn.00429f60
mov ecx, str.assertion_failed:_src.len____dst.len__
mov edx, 0x28
push 0x581858
call fcn.0046b100
mov ecx, 8
mov edx, 0x1c8
call fcn.00429f60
mov ecx, edi
mov edx, 0xb
push 0x581868
call fcn.0046a750
mov edx, 0xc
push 0x581878
call fcn.0046a750
mov ecx, esi
mov edx, 0xb
push 0x581868
call fcn.0046a750
mov ecx, str.called__Option::unwrap____on_a__None__value_home_rafalh_.cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.81_src_read.rs
mov edx, 0x2b
push 0x581754
call fcn.0046b100
mov ecx, 0x5817df
mov edx, 0x30
push 0x581810
call fcn.0046b100
mov ecx, str.assertion_failed:_idx___CAPACITY_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_srccollections_btree_node.rsassertion_failed:_edge.height__self.height___1
mov edx, 0x20
push 0x581820
call fcn.0046b100
nop word cs:[eax + eax]
nop