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

Disassembly:
mov ecx, dword [0x7a1414]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 4]
cmp eax, dword [ecx + 8]
jbe 0x523305
sub esp, 0x84
mov ebx, dword [0x75afe4]
test ebx, ebx
jne 0x522d5a
mov eax, dword [esp + 0x88]
mov ecx, dword [eax]
inc dword [ecx + 0x90]
mov edx, dword [ecx + 0x80]
mov ecx, dword [edx]
lea ebx, [0x5fe0d5]
mov dword [esp], ebx
mov dword [esp + 4], 0x31
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call ecx
mov edx, dword [esp + 0x8c]
movzx ebx, word [edx + 0x7c]
test ebx, ebx
jne 0x522e78
movsx ebx, byte [edx + 0x10]
test ebx, ebx
jne 0x522d9e
mov eax, dword [esp + 0x88]
mov dword [esp], eax
lea ecx, [edx + 8]
mov dword [esp + 4], ecx
call sym.cmd_internal_obj_mips._ctxt0_.aclass
mov eax, dword [esp + 8]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x8c]
mov byte [eax + 0x10], bl
mov edx, eax
mov dword [esp + 0x44], ebx
movsx ebp, byte [edx + 0x3c]
test ebp, ebp
jne 0x522ddb
mov eax, dword [esp + 0x88]
mov dword [esp], eax
lea ecx, [edx + 0x34]
mov dword [esp + 4], ecx
call sym.cmd_internal_obj_mips._ctxt0_.aclass
mov eax, dword [esp + 8]
lea ebp, [eax + 1]
mov eax, dword [esp + 0x8c]
xchg ebp, ebx
mov byte [eax + 0x3c], bl
xchg ebp, ebx
mov edx, eax
mov ebx, dword [esp + 0x44]
movzx eax, word [edx + 0x74]
and eax, 0x7ff
cmp eax, 0x93
jae 0x5232fa
lea esi, [ebx - 1]
lea edi, [eax + eax*2]
mov eax, edx
lea edx, [0x75ac00]
mov ecx, dword [edx + edi*4]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edx + edi*4 + 4]
mov edx, dword [edx + edi*4 + 8]
cmp esi, 0x24
jae 0x5232ee
mov dword [esp + 0x2c], edx
lea edi, [ebp - 1]
lea edx, [ebx + ebx*8]
lea ebx, [0x7a3340]
lea edx, [ebx + edx*4 - 0x24]
cmp edi, 0x24
jae 0x5232e2
mov dword [esp + 0x58], esi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], edi
mov dword [esp + 0x28], ecx
movzx edi, word [eax + 0x76]
lea ebp, [ebp + ebp*8]
lea ebx, [ebx + ebp*4 - 0x24]
mov dword [esp + 0x74], ebx
test di, di
xchg ebp, ebx
setne bl
xchg ebp, ebx
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov edi, dword [esp + 0x88]
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
jmp 0x522ecf
mov ecx, dword [0x732b8c]
lea eax, [ebx - 1]
cmp ecx, eax
jbe 0x522ea0
lea eax, [ebx + ebx*2]
mov ecx, dword [0x732b88]
lea eax, [ecx + eax*4 - 0xc]
mov dword [esp + 0x90], eax
add esp, 0x84
ret
call sym.runtime.panicIndex
lea eax, [esi + 1]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x88]
mov ecx, ebx
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x30]
cmp esi, ecx
jge 0x522f94
lea eax, [esi + esi*2]
mov edi, dword [esp + 0x5c]
lea ecx, [edi + eax*4 + 3]
movzx ecx, byte [ecx]
lea ebx, [edi + eax*4]
cmp ecx, ebp
jne 0x522f5e
lea ecx, [edi + eax*4 + 2]
movzx ecx, byte [ecx]
cmp ecx, 0x24
jae 0x5232d6
movzx ecx, byte [ecx + edx]
test cl, cl
je 0x522f55
lea ecx, [edi + eax*4 + 4]
movzx ecx, byte [ecx]
cmp ecx, 0x24
jae 0x5232ca
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x74]
movzx ecx, byte [ecx + ebx]
test cl, cl
je 0x522f4e
lea eax, [edi + eax*4 + 0xa]
movzx eax, byte [eax]
test al, al
je 0x522f67
mov ecx, ebx
mov ebx, dword [esp + 0x88]
mov ebx, dword [ebx]
mov ebx, dword [ebx + 4]
mov ebx, dword [ebx]
cmp byte [ebx + 8], al
jne 0x522ea5
jmp 0x522f67
mov ecx, ebx
jmp 0x522ea5
mov ecx, dword [esp + 0x74]
jmp 0x522ea5
mov ecx, dword [esp + 0x74]
jmp 0x522ea5
mov eax, dword [0x732b90]
mov ecx, dword [esp + 0x2c]
sub eax, ecx
lea eax, [eax + esi + 1]
mov ecx, dword [esp + 0x8c]
mov word [ecx + 0x7c], ax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x90], eax
add esp, 0x84
ret
mov ecx, dword [0x732b7c]
mov edx, dword [esp + 0x58]
cmp ecx, edx
jbe 0x5232c3
mov dword [esp + 0x4c], ebp
mov eax, dword [0x732b78]
mov ecx, dword [esp + 0x44]
lea eax, [eax + ecx*8 - 8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x4c]
cmp edx, 0x24
ja 0x523018
mov ebx, dword [0x732b7c]
cmp ebx, edx
jbe 0x5232ba
mov ebx, dword [0x732b78]
lea edx, [ebx + edx*8]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
jmp 0x523023
mov edx, 4
lea ebx, [0x5e5eea]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call sym.runtime.concatstring2
mov ecx, dword [0x732b7c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x48]
cmp ecx, ebx
jbe 0x5232b3
mov dword [esp + 0x68], eax
mov dword [esp + 0x38], edx
mov eax, dword [0x732b78]
mov ecx, dword [esp + 0x40]
lea eax, [eax + ecx*8 - 8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call sym.runtime.concatstring2
mov eax, dword [esp + 0x88]
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x34], edx
lea ebx, [0x5c7680]
mov dword [esp], ebx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x8c]
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 + 0x78]
mov dword [edx], ecx
mov ecx, dword [0x7a14d8]
test ecx, ecx
je 0x52310e
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 + 0x6c]
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 + 0x78]
mov dword [edx + 8], ecx
mov ebx, dword [0x7a14d8]
test ebx, ebx
je 0x52314d
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 + 0x68]
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 + 0x78]
mov dword [edx + 0x10], ecx
mov ebx, dword [0x7a14d8]
test ebx, ebx
je 0x52318c
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 + 0x64]
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 + 0x78]
mov dword [edx + 0x18], ecx
mov ecx, dword [0x7a14d8]
test ecx, ecx
je 0x5231cb
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0x1c]
mov dword [edi + 4], ecx
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x70]
inc dword [eax + 0x90]
mov eax, dword [eax + 0x80]
mov ecx, dword [eax]
lea ebx, [0x5f8429]
mov dword [esp], ebx
mov dword [esp + 4], 0x1f
mov dword [esp + 8], edx
mov dword [esp + 0xc], 4
mov dword [esp + 0x10], 4
mov edx, eax
call ecx
nop
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea eax, [0x5de540]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x80], 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 + 0x7c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call sym.fmt.Fprintf
lea eax, [0x5daaa0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov word [eax], 0xd
mov byte [eax + 2], 0
mov dword [eax + 3], 0x4310000
mov word [eax + 8], 0
mov word [eax + 0xa], 0
mov dword [esp + 0x90], eax
add esp, 0x84
ret
mov eax, ebx
call sym.runtime.panicIndex
mov eax, edx
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edx
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, 0x24
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, 0x24
call sym.runtime.panicIndex
mov eax, edi
mov ecx, 0x24
call sym.runtime.panicIndex
mov eax, esi
mov ecx, 0x24
call sym.runtime.panicIndex
mov ecx, 0x93
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.cmd_internal_obj_mips._ctxt0_.oplook