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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x9c
mov esi, dword [ecx + 0x10]
mov ebp, edx
mov eax, ecx
test esi, esi
je 0x554ee5
cmp word [esi + 0x10e], 0xb
jae 0x554f0e
lea edx, [eax + 0x10]
lea ecx, [esp + 0x44]
push ebp
push eax
mov esi, eax
call fcn.00555635
mov eax, esi
add esp, 8
jmp 0x55533e
mov esi, dword [eax + 0xc]
mov ebx, eax
call fcn.0055568e
mov edi, eax
mov ecx, eax
mov edx, ebx
push ebp
call fcn.00555391
pop ecx
mov dword [esi], edi
and dword [esi + 4], 0
mov dword [esi + 8], 1
jmp 0x555344
mov edx, dword [eax + 0x18]
push 4
pop ecx
cmp edx, 5
mov dword [esp + 8], ebp
jae 0x554f2a
mov bl, 1
mov edi, ecx
mov dword [esp], edx
mov dword [esp + 4], ebx
jmp 0x554f63
je 0x554f45
cmp edx, 6
jne 0x554f52
mov dword [esp + 4], 0
push 5
pop edi
mov dword [esp], 0
jmp 0x554f63
mov cl, 1
mov edi, edx
mov dword [esp], edx
mov dword [esp + 4], ecx
jmp 0x554f63
add edx, 0xfffffff9
mov dword [esp + 4], 0
mov dword [esp], edx
push 6
pop edi
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
call fcn.0055568e
movzx edx, word [esi + 0x10e]
mov ecx, edi
mov dword [esp + 0x1c], edi
not edi
mov dword [esp + 0x20], eax
add edi, edx
mov edx, eax
mov word [eax + 0x10e], di
imul eax, ecx, 0xc
lea ecx, [esp + 0x50]
add edx, 4
lea ebx, [esi + eax + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx - 4]
mov dword [ecx - 4], eax
movsd xmm0, qword [ebx - 0xc]
movsd qword [ecx - 0xc], xmm0
movsd xmm0, qword [ebx + 0x78]
movsd qword [ecx], xmm0
mov eax, dword [ebx + 0x80]
mov dword [ecx + 8], eax
mov ecx, edi
push 0x62ca6c
call fcn.005555a4
pop ecx
mov ebp, edx
mov ecx, ebx
mov edx, edi
push ebp
push eax
call fcn.005555bd
pop eax
pop ecx
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x20]
mov ecx, edi
lea eax, [esi + eax + 0x94]
mov dword [esp + 0xc], eax
mov eax, 0x88
lea edx, [ebp + eax]
push 0x62ca7c
call fcn.005555a4
pop ecx
mov ecx, dword [esp + 0xc]
mov ebx, edx
mov edx, edi
push ebx
push eax
call fcn.005555bd
pop eax
pop ecx
xor edi, edi
cmp byte [esp + 4], 0
mov eax, dword [esp + 0x1c]
mov ecx, ebp
mov ebx, 0
lea edx, [esp + 0x84]
cmovne ecx, esi
cmovne ebx, dword [esp + 0x10]
mov word [esi + 0x10e], ax
mov dword [edx], ecx
mov ecx, dword [esp]
mov dword [edx + 4], ebx
lea ebx, [esp + 0x2c]
mov dword [edx + 8], ecx
mov ecx, ebx
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.00555635
pop eax
pop ecx
lea eax, [esp + 0x50]
movsd xmm0, qword [eax + 4]
movsd xmm1, qword [eax - 0xc]
movsd xmm2, qword [eax - 4]
movsd qword [esp + 0x7c], xmm0
movsd qword [esp + 0x74], xmm2
movsd qword [esp + 0x6c], xmm1
movsd qword [ebx + 0x10], xmm0
movsd qword [ebx + 8], xmm2
movsd qword [ebx], xmm1
mov ebx, dword [esi]
test ebx, ebx
je 0x5552bf
cmp dword [esp + 0x10], edi
jne 0x55534f
movzx eax, word [esi + 0x10c]
movzx edi, word [ebx + 0x10e]
movzx edx, ax
cmp edi, 0xb
push 4
pop esi
jb 0x555325
mov cl, 1
cmp ax, 5
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], edi
mov dword [esp], ecx
jae 0x5550e0
mov dword [esp + 0x14], edx
jmp 0x555115
movzx esi, ax
je 0x5550fe
cmp esi, 6
jne 0x555104
mov dword [esp], 0
push 5
pop esi
mov dword [esp + 0x14], 0
jmp 0x555115
mov dword [esp + 0x14], esi
jmp 0x555115
add edx, 0xfffffff9
mov dword [esp], 0
mov dword [esp + 0x14], edx
push 6
pop esi
mov dword [esp + 4], esi
call fcn.005554a9
movzx ebp, word [ebx + 0x10e]
mov dword [esp + 8], ebx
mov ebx, esi
mov edi, eax
imul ecx, esi, 0xc
not ebx
mov dword [esp + 0x1c], ecx
lea edx, [edi + 4]
add ebx, ebp
mov word [eax + 0x10e], bx
mov eax, dword [esp + 8]
lea esi, [eax + ecx + 0x10]
lea ecx, [esp + 0x50]
mov eax, dword [esi - 4]
mov dword [esp + 0x4c], eax
movsd xmm0, qword [esi - 0xc]
movsd qword [esp + 0x44], xmm0
mov eax, dword [esi + 0x80]
mov dword [ecx + 8], eax
mov eax, dword [esp + 4]
movsd xmm0, qword [esi + 0x78]
movsd qword [ecx], xmm0
lea ecx, [eax + 1]
mov dword [esp + 0x24], ecx
sub ebp, ecx
mov ecx, ebx
push 0x62ca6c
call fcn.005555a4
pop ecx
mov dword [esp + 0xc], eax
mov eax, edx
mov ecx, esi
mov edx, ebp
push eax
push dword [esp + 0x10]
call fcn.005555bd
pop eax
pop ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x1c]
lea esi, [eax + ecx + 0x94]
mov eax, 0x88
mov ecx, ebx
lea edx, [edi + eax]
push 0x62ca7c
call fcn.005555a4
pop ecx
mov ecx, esi
mov esi, dword [esp + 4]
mov ebx, edx
mov edx, ebp
push ebx
push eax
call fcn.005555bd
pop eax
pop ecx
mov eax, dword [esp + 8]
mov word [eax + 0x10e], si
movzx eax, word [edi + 0x10e]
lea ecx, [eax + 1]
cmp eax, 0xc
jae 0x55535e
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x20]
sub eax, esi
cmp eax, ecx
jne 0x55536d
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov esi, 0x110
shl ecx, 2
lea eax, [edx + eax*4]
mov edx, edi
inc ebx
add eax, esi
add edx, esi
push ecx
push eax
push edx
call fcn.005669c0
add esp, 0xc
mov ecx, edi
mov edx, ebx
mov dword [esp + 0x10], ebx
call fcn.005554d5
movsd xmm1, qword [esp + 0x4c]
movsd xmm0, qword [esp + 0x44]
cmp byte [esp], 0
mov esi, dword [esp + 8]
mov edi, edx
mov edx, dword [esp + 0x14]
mov ecx, eax
mov ebx, eax
movsd qword [esp + 0x74], xmm1
movsd xmm1, qword [esp + 0x54]
movsd qword [esp + 0x6c], xmm0
cmovne ecx, esi
movsd qword [esp + 0x7c], xmm1
push ebp
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0055550a
add esp, 0xc
movsd xmm0, qword [esp + 0x6c]
movsd xmm1, qword [esp + 0x74]
movsd xmm2, qword [esp + 0x7c]
mov ebp, ebx
movsd qword [esp + 0x84], xmm0
movsd qword [esp + 0x2c], xmm0
movsd qword [esp + 0x34], xmm1
movsd qword [esp + 0x3c], xmm2
jmp 0x555096
movsd xmm0, qword [esp + 0x3c]
movsd xmm2, qword [esp + 0x2c]
movsd xmm1, qword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
movsd qword [esp + 0x5c], xmm0
movsd qword [esp + 0x54], xmm1
movsd qword [esp + 0x4c], xmm2
mov dword [esp + 0x44], esi
mov esi, dword [ecx + 0xc]
mov dword [esp + 0x48], eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], edi
cmp dword [esi], 0
je 0x555382
mov ecx, esi
lea ebx, [esp + 0x4c]
call fcn.005553ef
mov ecx, dword [esi]
mov edx, dword [esi + 4]
lea eax, [esp + 0x58]
push edi
push ebp
push eax
push ebx
call fcn.00555417
add esp, 0x10
jmp 0x55533a
mov ecx, ebx
push ebp
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0055550a
add esp, 0xc
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
inc dword [eax + 8]
add esp, 0x9c
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x35
pop edx
mov ecx, str.assertion_failed:_edge.height__self.node.height___1
push 0x62cad4
jmp 0x55537a
push 0xc
pop edx
push 0x62ca8c
call fcn.00576ab0
jmp 0x55537f
push 0x28
pop edx
mov ecx, str.assertion_failed:_src.len____dst.len__x
push 0x62ca5c
call fcn.00576b20
pop eax
ud2
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
push 0x62c948
jmp 0x55537a