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

Disassembly:
mov ecx, dword [0x7a1414]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x20]
cmp eax, dword [ecx + 8]
jbe 0x517079
sub esp, 0xa0
mov ebx, dword [0x75a93c]
test ebx, ebx
jne 0x51697a
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax]
inc dword [ecx + 0x90]
mov edx, dword [ecx + 0x80]
mov ecx, dword [edx]
lea ebx, [0x5fef13]
mov dword [esp], ebx
mov dword [esp + 4], 0x37
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call ecx
mov edx, dword [esp + 0xa8]
movzx ebx, word [edx + 0x7c]
test ebx, ebx
jne 0x516b2f
movsx ebx, byte [edx + 0x10]
test ebx, ebx
jne 0x5169be
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
lea ecx, [edx + 8]
mov dword [esp + 4], ecx
call sym.cmd_internal_obj_loong64._ctxt0_.aclass
mov eax, dword [esp + 8]
lea ebx, [eax + 1]
mov eax, dword [esp + 0xa8]
mov byte [eax + 0x10], bl
mov edx, eax
mov dword [esp + 0x58], ebx
movsx ebp, byte [edx + 0x3c]
test ebp, ebp
jne 0x5169fb
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
lea ecx, [edx + 0x34]
mov dword [esp + 4], ecx
call sym.cmd_internal_obj_loong64._ctxt0_.aclass
mov eax, dword [esp + 8]
lea ebp, [eax + 1]
mov eax, dword [esp + 0xa8]
xchg ebp, ebx
mov byte [eax + 0x3c], bl
xchg ebp, ebx
mov edx, eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x50], ebp
mov esi, dword [edx + 0x2c]
movzx edi, word [edx + 0x76]
movzx eax, word [edx + 0x78]
mov word [esp + 0x2a], ax
test esi, esi
je 0x516a73
mov esi, dword [edx + 0x28]
movsx ecx, byte [esi + 8]
test ecx, ecx
jne 0x516a6e
mov word [esp + 0x28], di
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
mov dword [esp + 4], esi
call sym.cmd_internal_obj_loong64._ctxt0_.aclass
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x2c]
test ecx, ecx
jbe 0x51706f
mov edx, dword [esp + 8]
lea ecx, [edx + 1]
mov edx, dword [eax + 0x28]
mov byte [edx + 8], cl
movzx eax, word [esp + 0x2a]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x50]
movzx edi, word [esp + 0x28]
lea esi, [ecx - 1]
jmp 0x516a75
xor esi, esi
movzx ecx, word [edx + 0x74]
and ecx, 0x7ff
cmp ecx, 0x8f
jae 0x517063
mov dword [esp + 0x5c], esi
lea edx, [ebx - 1]
lea ecx, [ecx + ecx*2]
lea esi, [0x75a540]
mov eax, dword [esi + ecx*4]
mov dword [esp + 0x84], eax
mov eax, dword [esi + ecx*4 + 4]
mov esi, dword [esi + ecx*4 + 8]
cmp edx, 0x23
jae 0x517057
mov dword [esp + 0x44], esi
lea ecx, [ebp - 1]
imul esi, ebx, 0x23
lea ebx, [0x7a2e60]
lea esi, [esi + ebx - 0x23]
cmp ecx, 0x23
jae 0x51704b
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x90], esi
mov dword [esp + 0x40], eax
imul ebp, ebp, 0x23
lea ebx, [ebp + ebx - 0x23]
mov dword [esp + 0x8c], ebx
test di, di
xchg ebp, ebx
setne bl
xchg ebp, ebx
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov dword [esp + 0x54], ebp
movzx edi, word [esp + 0x2a]
test di, di
xchg edi, ebx
setne bl
xchg edi, ebx
xchg edi, eax
movzx eax, al
xchg edi, eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x60]
jmp 0x516b8d
mov ecx, dword [0x732b4c]
lea eax, [ebx - 1]
cmp ecx, eax
jbe 0x516b57
imul eax, ebx, 0xe
mov ecx, dword [0x732b48]
lea eax, [eax + ecx - 0xe]
mov dword [esp + 0xac], eax
add esp, 0xa0
ret
call sym.runtime.panicIndex
lea eax, [edx + 1]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
cmp edx, eax
jge 0x516c70
imul ecx, edx, 0xe
mov edi, dword [esp + 0x84]
movzx ebx, byte [edi + ecx + 3]
lea eax, [edi + ecx]
cmp ebx, ebp
jne 0x516c33
movzx ebx, byte [edi + ecx + 4]
mov ebp, dword [esp + 0x5c]
cmp ebp, ebx
jne 0x516c23
movzx ebx, byte [edi + ecx + 2]
cmp ebx, 0x23
jae 0x51703f
movzx ebx, byte [ebx + esi]
test bl, bl
je 0x516c13
movzx ebx, byte [edi + ecx + 5]
cmp ebx, 0x23
jae 0x517033
mov esi, dword [esp + 0x8c]
movzx ebx, byte [ebx + esi]
test bl, bl
je 0x516c08
movzx ebx, byte [edi + ecx + 6]
mov ecx, esi
mov esi, dword [esp + 0x4c]
cmp ebx, esi
jne 0x516b5c
jmp 0x516c47
mov ecx, esi
mov esi, dword [esp + 0x4c]
jmp 0x516b5c
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x4c]
jmp 0x516b5c
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x4c]
jmp 0x516b5c
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x4c]
jmp 0x516b5c
mov ecx, dword [0x732b50]
mov ebx, dword [esp + 0x44]
sub ecx, ebx
lea ecx, [ecx + edx + 1]
mov edx, dword [esp + 0xa8]
mov word [edx + 0x7c], cx
mov dword [esp + 0xac], eax
add esp, 0xa0
ret
mov edx, dword [0x732b5c]
mov eax, dword [esp + 0x6c]
cmp edx, eax
jbe 0x51702c
mov ebx, dword [0x732b58]
mov esi, dword [esp + 0x58]
lea esi, [ebx + esi*8 - 8]
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x3c], esi
cmp ebp, 0x23
ja 0x516cb9
cmp edx, ebp
jbe 0x517023
lea ebp, [ebx + ebp*8]
mov esi, dword [ebp]
mov ebp, dword [ebp + 4]
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x3c]
jmp 0x516ccd
mov ebp, 4
lea ebp, [0x5e5eea]
mov dword [esp + 0x7c], ebp
mov ebp, 4
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x5c]
cmp ebp, 0x23
ja 0x516cf5
cmp ebp, edx
jae 0x51701a
lea ebp, [ebx + ebp*8]
mov esi, dword [ebp]
mov ebp, dword [ebp + 4]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x3c]
jmp 0x516d09
mov ebp, 4
lea ebp, [0x5e5eea]
mov dword [esp + 0x78], ebp
mov ebp, 4
cmp edx, ecx
jbe 0x517011
mov dword [esp + 0x34], ebp
mov dword [esp + 0x80], eax
mov ebp, dword [esp + 0x50]
lea ebp, [ebx + ebp*8 - 8]
mov ecx, dword [ebp]
mov dword [esp + 0x74], ecx
mov ebp, dword [ebp + 4]
mov dword [esp + 0x30], ebp
cmp edi, 0x23
ja 0x516d49
cmp edx, edi
jbe 0x517008
lea edx, [ebx + edi*8]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
jmp 0x516d54
mov edx, 4
lea ebx, [0x5e5eea]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
mov dword [esp + 0x88], eax
lea ecx, [0x5c8660]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov ecx, dword [esp + 0xa8]
movzx edx, word [ecx + 0x74]
mov word [esp], dx
call sym.runtime.convT16
mov eax, dword [esp + 4]
lea ecx, [0x5cb320]
mov edx, dword [esp + 0x9c]
mov dword [edx], ecx
mov ecx, dword [0x7a14d8]
test ecx, ecx
je 0x516dc3
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 4]
mov dword [edi + 4], ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c9180]
mov edx, dword [esp + 0x9c]
mov dword [edx + 8], ecx
mov ebx, dword [0x7a14d8]
test ebx, ebx
je 0x516e08
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [edx + 0xc]
mov dword [edi + 4], ebx
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c9180]
mov edx, dword [esp + 0x9c]
mov dword [edx + 0x10], ecx
mov ebx, dword [0x7a14d8]
test ebx, ebx
je 0x516e4a
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [edx + 0x14]
mov dword [edi + 4], ebx
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c9180]
mov edx, dword [esp + 0x9c]
mov dword [edx + 0x18], ecx
mov ebx, dword [0x7a14d8]
test ebx, ebx
je 0x516e8c
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [edx + 0x1c]
mov dword [edi + 4], ebx
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c9180]
mov edx, dword [esp + 0x9c]
mov dword [edx + 0x20], ecx
mov ebx, dword [0x7a14d8]
test ebx, ebx
je 0x516ece
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [edx + 0x24]
mov dword [edi + 4], ebx
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c9180]
mov edx, dword [esp + 0x9c]
mov dword [edx + 0x28], ecx
mov ecx, dword [0x7a14d8]
test ecx, ecx
je 0x516f10
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x2c]
mov dword [edi + 4], ecx
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x88]
inc dword [eax + 0x90]
mov eax, dword [eax + 0x80]
mov ecx, dword [eax]
lea ebx, [0x5faba9]
mov dword [esp], ebx
mov dword [esp + 4], 0x25
mov dword [esp + 8], edx
mov dword [esp + 0xc], 6
mov dword [esp + 0x10], 6
mov edx, eax
call ecx
nop
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
lea eax, [0x5de540]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x98], eax
mov eax, dword [0x7594ac]
lea ecx, [0x63c244]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x5e596b]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
lea eax, [esp + 0x94]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call sym.fmt.Fprintf
lea eax, [0x5db3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov word [eax], 0xd
mov byte [eax + 2], 0
mov word [eax + 3], 0
mov dword [eax + 5], 0x4310000
mov word [eax + 0xa], 0
mov byte [eax + 0xc], 0
mov dword [esp + 0xac], eax
add esp, 0xa0
ret
mov eax, edi
mov ecx, edx
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, edx
call sym.runtime.panicIndex
mov eax, ebp
mov ecx, edx
call sym.runtime.panicIndex
mov eax, ebp
mov ecx, edx
call sym.runtime.panicIndex
mov ecx, edx
call sym.runtime.panicIndex
mov eax, ebx
mov ecx, 0x23
call sym.runtime.panicIndex
mov eax, ebx
mov ecx, 0x23
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, 0x23
call sym.runtime.panicIndex
mov eax, edx
mov ecx, 0x23
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, 0x8f
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.cmd_internal_obj_loong64._ctxt0_.oplook