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

Disassembly:
mov ecx, dword [0x7a1414]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x522695
sub esp, 0xb4
mov ecx, dword [esp + 0xb8]
movzx ebx, byte [ecx + 0x1e]
test bl, bl
je 0x521d54
nop
inc dword [ecx + 0x90]
mov edx, dword [ecx + 0x80]
mov eax, dword [edx]
lea ebx, [0x5f9740]
mov dword [esp], ebx
mov dword [esp + 4], 0x22
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call eax
mov eax, dword [esp + 0xb8]
mov byte [eax + 0x1e], 0
mov ecx, eax
mov ebx, dword [esp + 0xbc]
mov ebp, dword [ebx + 0x34]
test ebp, ebp
je 0x521d76
lea esi, [0x5d78a0]
cmp dword [ebp], esi
jne 0x521d72
mov ebp, dword [ebp + 4]
jmp 0x521d7e
xor ebp, ebp
jmp 0x521d7e
lea esi, [0x5d78a0]
xor ebp, ebp
mov ebp, dword [ebp + 0x14]
test ebp, ebp
je 0x521e37
mov eax, dword [ebp + 4]
test eax, eax
je 0x521e37
mov eax, dword [ebp + 0x40]
mov dword [esp + 0x54], eax
mov edx, dword [ecx + 4]
mov edx, dword [edx]
mov edx, dword [edx + 0x24]
lea edi, [esp + 0x6c]
xor eax, eax
call fcn.00468278
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x6c], ecx
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x54]
add ebx, edx
mov dword [esp + 0x78], ebx
mov ebx, dword [0x75afe4]
test ebx, ebx
jne 0x521e20
mov dword [esp + 0x5c], ebp
nop
inc dword [ecx + 0x90]
mov edx, dword [ecx + 0x80]
mov eax, dword [edx]
lea ecx, [0x5fe0d5]
mov dword [esp], ecx
mov dword [esp + 4], 0x31
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call eax
xor eax, eax
mov ebp, dword [esp + 0x5c]
mov dword [ebp + 0x60], 0
mov dword [ebp + 0x64], 0
mov ecx, dword [ebp + 4]
xor edx, edx
xor ebx, ebx
jmp 0x521e47
add esp, 0xb4
ret
mov ebp, dword [esp + 0x5c]
mov ecx, dword [ebp + 4]
xor eax, eax
test ecx, ecx
je 0x521f43
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edx
mov dword [ecx + 0x60], ebx
mov dword [ecx + 0x64], edx
lea eax, [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.cmd_internal_obj_mips._ctxt0_.oplook
mov eax, dword [esp + 8]
movsx eax, byte [eax + 6]
test eax, eax
jne 0x521f2d
mov eax, dword [esp + 0x5c]
movzx ecx, word [eax + 0x74]
cmp cx, 7
je 0x521f20
cmp cx, 5
je 0x521f20
cmp cx, 9
je 0x521f20
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x68], eax
lea ecx, [0x5c6b80]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x5de540]
mov dword [eax], ecx
mov edx, dword [0x7a14d8]
test edx, edx
jne 0x521ed5
mov ebx, dword [esp + 0x5c]
jmp 0x521ee0
call sym.runtime.gcWriteBarrier1
mov ebx, dword [esp + 0x5c]
mov dword [edi], ebx
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x68]
inc dword [ecx + 0x90]
mov edx, dword [ecx + 0x80]
mov ecx, dword [edx]
lea ebp, [0x5f55af]
mov dword [esp], ebp
mov dword [esp + 4], 0x19
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call ecx
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
jmp 0x521e3e
mov edx, eax
sar edx, 0x1f
mov ebx, dword [esp + 0x18]
add ebx, eax
mov eax, dword [esp + 0x1c]
adc edx, eax
jmp 0x521e3e
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], edx
mov ecx, 1
jmp 0x521f64
mov edi, dword [esp + 0x74]
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebp
mov ecx, ebx
mov ebx, esi
mov edx, ebp
test ecx, ecx
je 0x521f9f
mov ecx, dword [esp + 0x74]
mov ecx, dword [ecx + 0x34]
test ecx, ecx
je 0x521f86
lea edx, [0x5d78a0]
cmp dword [ecx], edx
jne 0x521f82
mov ecx, dword [ecx + 4]
jmp 0x521f8e
xor ecx, ecx
jmp 0x521f8e
lea edx, [0x5d78a0]
xor ecx, ecx
mov ecx, dword [ecx + 0x14]
mov ecx, dword [ecx + 4]
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x5222fa
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx]
cmp byte [ecx + 8], 7
jne 0x521fb8
sub eax, ebx
and eax, 7
add ebx, eax
adc edx, 0
mov eax, dword [esp + 0x74]
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edx
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call sym.cmd_internal_obj._LSym_.Grow
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x74]
mov ebx, dword [ebx + 0x34]
test ebx, ebx
je 0x522027
lea ebp, [0x5d78a0]
cmp dword [ebx], ebp
jne 0x522023
mov ebx, dword [ebx + 4]
jmp 0x52202f
xor ebx, ebx
jmp 0x52202f
lea ebp, [0x5d78a0]
xor ebx, ebx
mov ebx, dword [ebx + 0x14]
mov ebx, dword [ebx + 4]
jmp 0x52204a
mov esi, dword [esp + 0x58]
mov esi, dword [esi + 4]
lea ebp, [0x5d78a0]
mov eax, edx
mov edx, ebx
mov ebx, esi
test ebx, ebx
je 0x522187
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x58], ebx
mov eax, dword [ebx + 0x60]
mov ecx, dword [ebx + 0x64]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
lea eax, [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym.cmd_internal_obj_mips._ctxt0_.oplook
mov eax, dword [esp + 8]
mov dword [esp + 0x60], eax
movzx ecx, byte [eax + 6]
movsx edx, cl
cmp edx, 0x10
jle 0x52213d
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
lea eax, [0x5c91c0]
mov dword [esp + 0xa0], eax
sar cl, 2
movzx ecx, cl
lea edx, [0x7270e0]
lea ecx, [edx + ecx*8]
mov dword [esp + 0xa4], ecx
lea ecx, [0x5de540]
mov dword [esp + 0xa8], ecx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0xac], ebx
lea ebp, [0x5ff108]
mov dword [esp], ebp
mov dword [esp + 4], 0x38
lea esi, [esp + 0xa0]
mov dword [esp + 8], esi
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call sym.log.Fatalf
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x6c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea edx, [esp + 0x20]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], 4
call sym.cmd_internal_obj_mips._ctxt0_.asmout
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
xor ebp, ebp
jmp 0x522263
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x52219f
cmp dword [eax], ebp
jne 0x52219b
mov eax, dword [eax + 4]
jmp 0x5221a1
xor eax, eax
jmp 0x5221a1
xor eax, eax
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
lea ecx, [sym.cmd_internal_obj_mips._ctxt0_.isUnsafePoint_fm]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
lea ecx, [sym.cmd_internal_obj_mips._ctxt0_.isRestartable_fm]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 0x94], ecx
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
lea eax, [esp + 0x98]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x10], eax
call sym.cmd_internal_obj.MarkUnsafePoints
add esp, 0xb4
ret
mov esi, dword [esp + 0x4c]
lea edx, [esi - 4]
mov esi, edx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
mov edi, dword [esp + 0x30]
lea ebp, [edi + 1]
mov edi, dword [esp + 0xb0]
add esi, edi
lea ebx, [ecx - 4]
mov eax, dword [esp + 0x60]
mov ecx, esi
movzx esi, byte [eax + 6]
mov edi, esi
xchg esi, eax
sar al, 7
xchg esi, eax
xchg esi, eax
shr al, 6
xchg esi, eax
add esi, edi
xchg esi, eax
sar al, 2
xchg esi, eax
xchg esi, eax
movsx eax, al
xchg esi, eax
cmp ebp, esi
jge 0x522037
cmp ebp, 4
jae 0x5222e1
mov dword [esp + 0x50], ebx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov esi, dword [esi + 0x14]
mov edi, dword [esp + ebp*4 + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], edi
call esi
mov ecx, dword [esp + 0x50]
cmp ecx, 4
jae 0x522235
mov eax, 4
call sym.runtime.panicSliceB
mov eax, ebp
mov ecx, 4
call sym.runtime.panicIndex
mov ecx, dword [ecx + 4]
xor eax, eax
mov ebx, edx
lea edx, [0x5d78a0]
test ecx, ecx
je 0x521f54
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], ebx
mov dword [ecx + 0x60], esi
mov dword [ecx + 0x64], ebp
lea eax, [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.cmd_internal_obj_mips._ctxt0_.oplook
mov eax, dword [esp + 8]
cmp byte [eax + 5], 6
jne 0x52255c
mov ecx, dword [esp + 0x5c]
movzx ebx, byte [ecx + 0x3a]
cmp bl, 1
jne 0x52235d
mov ebp, dword [ecx + 0x4c]
test ebp, ebp
je 0x52235d
lea esi, [0x5de540]
cmp ebp, esi
jne 0x52267e
mov ebp, dword [ecx + 0x50]
jmp 0x522365
lea esi, [0x5de540]
xor ebp, ebp
test ebp, ebp
je 0x522556
cmp bl, 1
jne 0x522386
mov ebx, dword [ecx + 0x4c]
test ebx, ebx
je 0x522386
cmp ebx, esi
jne 0x522668
mov ebx, dword [ecx + 0x50]
jmp 0x522388
xor ebx, ebx
mov ebp, dword [ebx + 0x60]
mov ebx, dword [ebx + 0x64]
mov edi, dword [esp + 0x44]
sub ebp, edi
mov esi, dword [esp + 0x48]
sbb ebx, esi
cmp ebx, 0xffffffff
sete dl
xchg esi, ebx
setl bl
xchg esi, ebx
cmp ebp, 0xfffe000a
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, edx
or esi, edi
test ebx, ebx
setg bl
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ebp, 0x1fff6
xchg ebp, ebx
setae bl
xchg ebp, ebx
and ebp, edi
or ebx, ebp
or esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
jne 0x5223e6
mov edx, dword [esp + 0x3c]
jmp 0x522564
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x52241e
call sym.runtime.gcWriteBarrier4
mov dword [edi], ebp
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
mov ecx, dword [ebx + 4]
mov dword [edi + 0xc], ecx
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov word [eax + 0x74], 6
mov ecx, dword [ebx + 0x6c]
mov ebp, dword [ebx + 0x68]
mov dword [eax + 0x68], ebp
mov dword [eax + 0x6c], ecx
mov byte [eax + 0x3a], 1
cmp byte [ebx + 0x3a], 1
jne 0x52245a
mov ecx, dword [ebx + 0x4c]
test ecx, ecx
je 0x52245a
lea ebp, [0x5de540]
cmp ecx, ebp
jne 0x522652
mov ecx, dword [ebx + 0x50]
jmp 0x522462
lea ebp, [0x5de540]
xor ecx, ecx
mov dword [eax + 0x4c], ebp
mov esi, dword [0x7a14d8]
test esi, esi
je 0x52247c
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov esi, dword [eax + 0x50]
mov dword [edi + 4], esi
mov dword [eax + 0x50], ecx
nop
cmp byte [ebx + 0x3a], 1
jne 0x52263a
mov dword [ebx + 0x4c], ebp
mov ecx, dword [0x7a14d8]
test ecx, ecx
je 0x5224a4
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [ebx + 0x50]
mov dword [edi + 4], ecx
mov dword [ebx + 0x50], eax
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x5224db
call sym.runtime.gcWriteBarrier4
mov dword [edi], ebp
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
mov ecx, dword [ebx + 4]
mov dword [edi + 0xc], ecx
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov word [eax + 0x74], 6
mov ecx, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x68]
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], ecx
mov byte [eax + 0x3a], 1
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 4]
lea edx, [0x5de540]
mov dword [eax + 0x4c], edx
mov ebp, dword [0x7a14d8]
test ebp, ebp
je 0x52251d
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebp, dword [eax + 0x50]
mov dword [edi + 4], ebp
mov dword [eax + 0x50], ecx
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.cmd_internal_obj_mips._ctxt0_.addnop
lea eax, [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
call sym.cmd_internal_obj_mips._ctxt0_.addnop
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov edx, 1
jmp 0x522564
mov edx, dword [esp + 0x3c]
jmp 0x522564
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x3c]
movsx eax, byte [eax + 6]
test eax, eax
jne 0x522624
movzx eax, word [ecx + 0x74]
cmp ax, 7
je 0x522617
cmp ax, 5
je 0x522617
cmp ax, 9
je 0x522617
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
lea ecx, [0x5c6b80]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x5de540]
mov dword [eax], ecx
mov edx, dword [0x7a14d8]
test edx, edx
jne 0x5225c8
mov ebx, dword [esp + 0x5c]
jmp 0x5225d3
call sym.runtime.gcWriteBarrier1
mov ebx, dword [esp + 0x5c]
mov dword [edi], ebx
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x64]
inc dword [ecx + 0x90]
mov edx, dword [ecx + 0x80]
mov ecx, dword [edx]
lea ebp, [0x5f55af]
mov dword [esp], ebp
mov dword [esp + 4], 0x19
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call ecx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
jmp 0x5222ed
mov ebp, eax
sar ebp, 0x1f
mov esi, dword [esp + 0x44]
add esi, eax
mov eax, dword [esp + 0x48]
adc ebp, eax
jmp 0x5222ed
lea eax, [0x5c9180]
mov dword [esp], eax
lea eax, [0x63bba8]
mov dword [esp + 4], eax
call sym.runtime.gopanic
mov dword [esp], ecx
mov dword [esp + 4], ebp
lea eax, [0x5c9ec0]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
mov dword [esp], ebx
mov dword [esp + 4], esi
lea eax, [0x5c9ec0]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
mov dword [esp], ebp
mov dword [esp + 4], esi
lea eax, [0x5c9ec0]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
nop
call sym.runtime.morestack_noctxt
jmp sym.cmd_internal_obj_mips.span0