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

Disassembly:
mov ecx, dword [0x72f2ac]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x55df78
sub esp, 0x54
mov ecx, dword [esp + 0x60]
lea edx, [ecx - 1]
mov ebx, dword [esp + 0x5c]
jmp 0x55da05
dec edx
test edx, edx
jl 0x55da3f
cmp ecx, edx
jbe 0x55df70
movzx ebp, byte [ebx + edx]
xchg ebp, eax
cmp al, 0x5c
xchg ebp, eax
je 0x55da3f
xchg ebp, eax
cmp al, 0x2f
xchg ebp, eax
je 0x55da3f
xchg ebp, eax
cmp al, 0x2e
xchg ebp, eax
jne 0x55da04
mov ebp, ecx
sub ebp, edx
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
add edx, ebx
jmp 0x55da43
xor esi, esi
xor edx, edx
cmp esi, 3
jne 0x55db02
cmp word [edx], 0x672e
jne 0x55db02
cmp byte [edx + 2], 0x6f
jne 0x55db02
cmp ecx, 8
jge 0x55da6a
xor eax, eax
jmp 0x55da91
mov dword [esp], ebx
lea eax, [0x5a4845]
mov dword [esp + 4], eax
mov dword [esp + 8], 8
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
test al, al
je 0x55daaf
cmp ecx, 8
jb 0x55df66
lea eax, [ecx - 8]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 8
add eax, ebx
jmp 0x55dab1
mov eax, ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x5bbff8]
mov dword [esp + 8], eax
call sym.os.Expand
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.path_filepath.Clean
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
test edx, edx
jne 0x55daec
xor ecx, ecx
jmp 0x55daee
mov ecx, dword [ecx]
mov edx, dword [esp + 8]
mov dword [esp + 0x50], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x38], ebx
xor ebp, ebp
jmp 0x55db2e
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x54
ret
test ecx, ecx
je 0x55dbb8
mov ebp, dword [ecx + 0xc]
lea esi, [0x5737a0]
cmp ebp, esi
jne 0x55df50
mov ebp, dword [ecx + 0x10]
mov edi, dword [ebp + 4]
cmp edi, ebx
jne 0x55db8f
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], ebp
mov eax, dword [ebp]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edi
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
jne 0x55dba0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x4c]
lea esi, [0x5737a0]
mov edi, dword [ecx + 8]
test edi, edi
je 0x55db9c
mov ecx, dword [ecx]
cmp edi, ecx
jne 0x55db2e
xor ecx, ecx
jmp 0x55db2e
mov eax, dword [esp + 0x44]
test eax, eax
mov ecx, eax
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x58]
je 0x55dc7c
mov eax, dword [eax]
cmp dword [ecx + 8], eax
jne 0x55deba
cmp dword [eax], ecx
je 0x55deba
cmp ecx, eax
je 0x55deba
mov edx, dword [ecx + 4]
test byte [edx], al
mov ebx, dword [0x72f350]
mov esi, dword [ecx]
test ebx, ebx
je 0x55dbf6
call sym.runtime.gcWriteBarrier2
mov dword [edi], esi
mov ebx, dword [edx]
mov dword [edi + 4], ebx
mov dword [edx], esi
mov edx, dword [ecx]
test byte [edx], al
mov ebx, dword [0x72f350]
mov esi, dword [ecx + 4]
test ebx, ebx
je 0x55dc1f
call sym.runtime.gcWriteBarrier4
mov dword [edi], esi
mov ebx, dword [edx + 4]
mov dword [edi + 4], ebx
mov dword [edi + 8], eax
mov ebx, dword [ecx + 4]
mov dword [edi + 0xc], ebx
mov dword [edx + 4], esi
mov dword [ecx + 4], eax
mov edx, dword [0x72f350]
mov ebx, dword [eax]
test edx, edx
je 0x55dc3d
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebx
mov edx, dword [ecx]
mov dword [edi + 4], edx
mov dword [ecx], ebx
test byte [eax], al
mov edx, dword [0x72f350]
test edx, edx
je 0x55dc57
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov edx, dword [eax]
mov dword [edi + 4], edx
mov dword [eax], ecx
mov eax, dword [ecx]
test byte [eax], al
mov edx, dword [0x72f350]
test edx, edx
je 0x55dc74
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov dword [eax + 4], ecx
jmp 0x55deba
mov dword [esp], edx
mov dword [esp + 4], ebx
call sym.os.ReadFile
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x55df28
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov byte [esp + 0x2f], 0
mov byte [esp + 0x2f], 0xa
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
lea eax, [esp + 0x2f]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0xffffffff
call sym.bytes.genSplit
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x34], edx
lea ebx, [0x585b80]
mov dword [esp], ebx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], ecx
mov ecx, dword [0x72f350]
test ecx, ecx
jne 0x55dd27
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x3c]
jmp 0x55dd39
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x50]
mov dword [edi], ecx
mov edx, dword [esp + 0x3c]
mov dword [edi + 4], edx
mov dword [esp + 0x48], eax
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x10], ecx
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx]
mov dword [esp + 0x40], edx
mov ebx, dword [edx]
nop
test ebx, ebx
jne 0x55dd8d
mov ebx, dword [0x72f350]
nop
test ebx, ebx
je 0x55dd81
call sym.runtime.gcWriteBarrier4
mov dword [edi], edx
mov ebx, dword [edx]
mov dword [edi + 4], ebx
mov dword [edi + 8], edx
mov ebx, dword [edx + 4]
mov dword [edi + 0xc], ebx
mov dword [edx], edx
mov dword [edx + 4], edx
mov dword [edx + 0x14], 0
nop
lea eax, [0x58c840]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x5737a0]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x72f350]
test ecx, ecx
jne 0x55ddb9
mov ecx, dword [esp + 0x48]
jmp 0x55ddc4
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov dword [eax + 0x10], ecx
mov edx, dword [0x72f350]
test edx, edx
jne 0x55ddd7
mov edx, dword [esp + 0x40]
jmp 0x55dde2
call sym.runtime.gcWriteBarrier1
mov edx, dword [esp + 0x40]
mov dword [edi], edx
mov dword [eax + 4], edx
mov ebx, dword [0x72f350]
mov ebp, dword [edx]
test ebx, ebx
je 0x55de00
call sym.runtime.gcWriteBarrier3
mov dword [edi], ebp
mov dword [edi + 4], eax
mov ebx, dword [edx]
mov dword [edi + 8], ebx
mov dword [eax], ebp
mov dword [edx], eax
mov ebx, dword [eax]
test byte [ebx], al
mov ebp, dword [0x72f350]
test ebp, ebp
je 0x55de28
call sym.runtime.gcWriteBarrier4
mov dword [edi], eax
mov ebp, dword [ebx + 4]
mov dword [edi + 4], ebp
mov dword [edi + 8], edx
mov ebp, dword [eax + 8]
mov dword [edi + 0xc], ebp
mov dword [ebx + 4], eax
mov dword [eax + 8], edx
inc dword [edx + 0x14]
mov eax, dword [esp + 0x58]
mov edx, dword [eax]
mov ebx, dword [edx + 0x14]
cmp dword [eax + 4], ebx
jg 0x55deb8
test ebx, ebx
jne 0x55de47
xor eax, eax
jmp 0x55de4a
mov eax, dword [edx + 4]
cmp dword [eax + 8], edx
jne 0x55deb8
mov ebx, dword [eax + 4]
test byte [ebx], al
mov ebp, dword [0x72f350]
nop
mov esi, dword [eax]
test ebp, ebp
je 0x55de6d
call sym.runtime.gcWriteBarrier2
mov dword [edi], esi
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], esi
mov ebx, dword [eax]
test byte [ebx], al
mov ebp, dword [0x72f350]
mov esi, dword [eax + 4]
test ebp, ebp
je 0x55de9e
call sym.runtime.gcWriteBarrier5
mov dword [edi], esi
mov ebp, dword [ebx + 4]
mov dword [edi + 4], ebp
mov ebp, dword [eax]
mov dword [edi + 8], ebp
mov ebp, dword [eax + 4]
mov dword [edi + 0xc], ebp
mov ebp, dword [eax + 8]
mov dword [edi + 0x10], ebp
mov dword [ebx + 4], esi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
dec dword [edx + 0x14]
mov ebp, ecx
mov eax, dword [esp + 0x64]
lea ecx, [eax - 1]
cmp dword [ebp + 0xc], ecx
jle 0x55deca
test ecx, ecx
jge 0x55def6
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x54
ret
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4 - 0xc]
mov ebx, dword [ecx + eax*4 - 8]
mov eax, dword [ecx + eax*4 - 4]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x54
ret
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
add esp, 0x54
ret
mov dword [esp], ebp
mov dword [esp + 4], esi
lea eax, [0x57d040]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
mov eax, 8
call sym.runtime.panicSliceB
mov eax, edx
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.cmd_internal_objfile._FileCache_.Line