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

Disassembly:
mov ecx, dword [0x6dded4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5320ec
sub esp, 0x54
mov ecx, dword [esp + 0x60]
lea edx, [ecx - 1]
mov ebx, dword [esp + 0x5c]
jmp 0x531b65
dec edx
test edx, edx
jl 0x531b9f
cmp ecx, edx
jbe 0x5320e4
movzx ebp, byte [ebx + edx]
xchg ebp, eax
cmp al, 0x5c
xchg ebp, eax
je 0x531b9f
xchg ebp, eax
cmp al, 0x2f
xchg ebp, eax
je 0x531b9f
xchg ebp, eax
cmp al, 0x2e
xchg ebp, eax
jne 0x531b64
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 0x531ba3
xor esi, esi
xor edx, edx
cmp esi, 3
jne 0x531c62
cmp word [edx], 0x672e
jne 0x531c62
cmp byte [edx + 2], 0x6f
jne 0x531c62
cmp ecx, 8
jge 0x531bca
xor eax, eax
jmp 0x531bf1
mov dword [esp], ebx
lea eax, [0x578667]
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 0x531c0f
cmp ecx, 8
jb 0x5320da
lea eax, [ecx - 8]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 8
add eax, ebx
jmp 0x531c11
mov eax, ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x58fb80]
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 0x531c4c
xor ecx, ecx
jmp 0x531c4e
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 0x531c8e
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 0x531d18
mov ebp, dword [ecx + 0xc]
lea esi, [0x5482e0]
cmp ebp, esi
jne 0x5320c4
mov ebp, dword [ecx + 0x10]
mov edi, dword [ebp + 4]
cmp ebx, edi
jne 0x531cef
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 0x531d00
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, [0x5482e0]
mov edi, dword [ecx + 8]
test edi, edi
je 0x531cfc
mov ecx, dword [ecx]
cmp edi, ecx
jne 0x531c8e
xor ecx, ecx
jmp 0x531c8e
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 0x531ddc
mov eax, dword [eax]
cmp dword [ecx + 8], eax
jne 0x53202a
cmp dword [eax], ecx
je 0x53202a
cmp ecx, eax
je 0x53202a
mov edx, dword [ecx + 4]
test byte [edx], al
mov ebx, dword [0x6ddfe0]
mov esi, dword [ecx]
test ebx, ebx
je 0x531d56
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 [0x6ddfe0]
mov esi, dword [ecx + 4]
test ebx, ebx
je 0x531d7f
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 [0x6ddfe0]
mov ebx, dword [eax]
test edx, edx
je 0x531d9d
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 [0x6ddfe0]
test edx, edx
je 0x531db7
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 [0x6ddfe0]
test edx, edx
je 0x531dd4
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov dword [eax + 4], ecx
jmp 0x53202a
mov dword [esp], edx
mov dword [esp + 4], ebx
call sym.os.ReadFile
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x532098
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 + 0x28]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], edx
lea ebx, [0x55a4e0]
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 [0x6ddfe0]
test ecx, ecx
jne 0x531e83
mov ecx, dword [esp + 0x50]
jmp 0x531e8e
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x50]
mov dword [edi], ecx
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 ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x531eae
mov ecx, dword [esp + 0x3c]
jmp 0x531eb9
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x3c]
mov dword [edi], ecx
mov dword [esp + 0x48], eax
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx]
mov dword [esp + 0x40], edx
mov ebx, dword [edx]
nop
test ebx, ebx
jne 0x531efd
mov ebx, dword [0x6ddfe0]
nop
test ebx, ebx
je 0x531ef1
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, [0x560f60]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x5482e0]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x531f29
mov ecx, dword [esp + 0x48]
jmp 0x531f34
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov dword [eax + 0x10], ecx
mov edx, dword [0x6ddfe0]
test edx, edx
jne 0x531f47
mov edx, dword [esp + 0x40]
jmp 0x531f52
call sym.runtime.gcWriteBarrier1
mov edx, dword [esp + 0x40]
mov dword [edi], edx
mov dword [eax + 4], edx
mov ebx, dword [0x6ddfe0]
mov ebp, dword [edx]
test ebx, ebx
je 0x531f70
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 [0x6ddfe0]
test ebp, ebp
je 0x531f98
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 0x532028
test ebx, ebx
jne 0x531fb7
xor eax, eax
jmp 0x531fba
mov eax, dword [edx + 4]
cmp dword [eax + 8], edx
jne 0x532028
mov ebx, dword [eax + 4]
test byte [ebx], al
mov ebp, dword [0x6ddfe0]
nop
mov esi, dword [eax]
test ebp, ebp
je 0x531fdd
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 [0x6ddfe0]
mov esi, dword [eax + 4]
test ebp, ebp
je 0x53200e
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 0x53203a
test ecx, ecx
jge 0x532066
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 eax, dword [esp + 0x14]
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, [0x551a00]
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