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

Disassembly:
mov ecx, dword [0x7a1414]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x55ae0e
sub esp, 0x64
nop
lea eax, [0x5dab60]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x68]
movzx edx, word [ecx + 0x74]
mov word [eax + 4], dx
movsx edx, word [ecx + 0x34]
mov dword [eax + 8], edx
movsx edx, word [ecx + 0x76]
mov dword [eax + 0xc], edx
movsx edx, word [ecx + 8]
mov dword [eax + 0x10], edx
mov edx, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x18]
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], ebx
cmp dword [ecx + 0x2c], 1
jne 0x55a8e6
mov edx, dword [ecx + 0x28]
movsx edx, word [edx]
mov dword [eax + 0x14], edx
mov dword [esp + 0x50], eax
movzx ecx, word [esp + 0x6c]
mov word [eax + 4], cx
movzx ecx, word [esp + 0x6e]
movsx ecx, cx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp], ecx
mov dword [esp + 4], edx
call sym.cmd_internal_obj_riscv.Split32BitImmediate
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x55acea
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test ecx, ecx
sete dl
test eax, eax
sete bl
and edx, ebx
test dl, dl
jne 0x55aca3
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [edx + 0x70]
test ebx, ebx
jne 0x55aa73
mov ebx, dword [esp + 0x50]
cmp word [ebx + 4], 0x400e
jne 0x55aa73
mov ebp, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x18]
cmp esi, 0xfffff000
xchg edi, ebx
setae bl
xchg edi, ebx
cmp ebp, 0xffffffff
sete dl
and edi, edx
test ebp, ebp
setge dl
sete cl
setl al
or edx, edi
cmp esi, 0xfff
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, ecx
or eax, edi
and edx, eax
test dl, dl
je 0x55aa73
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], esi
mov eax, ebp
shr ebp, 0x1f
add ebp, esi
adc eax, 0
mov edx, eax
sar eax, 1
mov dword [esp + 0x38], eax
shr ebp, 1
shl edx, 0x1f
or ebp, edx
mov dword [esp + 0x34], ebp
mov dword [ebx + 0x18], ebp
mov dword [ebx + 0x1c], eax
lea edx, [0x5dab60]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x4c], eax
mov word [eax + 4], 0x400e
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 8]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x34]
sub edx, ebx
mov dword [eax + 0x18], edx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x38]
sbb edx, ebx
mov dword [eax + 0x1c], edx
lea edx, [0x5c8760]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [0x7a14d8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x55aa44
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
jmp 0x55aa56
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0x50]
mov dword [edi], eax
mov edx, dword [esp + 0x4c]
mov dword [edi + 4], edx
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], 2
mov dword [esp + 0x78], 2
add esp, 0x64
ret
mov eax, dword [esp + 8]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
lea edx, [0x5dab60]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x44], eax
mov word [eax + 4], 0x4017
mov dword [eax + 8], 0x3c1f
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x1c], ecx
lea ecx, [0x5dab60]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov word [eax + 4], 0x4037
mov dword [eax + 8], 0x3c1f
mov dword [eax + 0xc], 0x3c1f
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x18], ecx
mov edx, dword [esp + 0x24]
mov dword [eax + 0x1c], edx
mov ebx, dword [esp + 0x50]
movzx ebp, word [ebx + 4]
cmp bp, 0x4011
jg 0x55ab19
cmp bp, 0x400e
jne 0x55ab06
mov word [ebx + 4], 0x4019
jmp 0x55ab39
cmp bp, 0x4011
jne 0x55ac0c
mov word [ebx + 4], 0x401c
jmp 0x55ab39
cmp bp, 0x4012
jne 0x55ab28
mov word [ebx + 4], 0x401d
jmp 0x55ab39
cmp bp, 0x4013
jne 0x55ac0c
mov word [ebx + 4], 0x401e
mov dword [ebx + 0x10], 0x3c1f
test edx, edx
sete dl
test ecx, ecx
sete cl
and edx, ecx
test dl, dl
je 0x55aba5
lea eax, [0x5c8760]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [0x7a14d8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x55ab76
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x50]
jmp 0x55ab88
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0x44]
mov dword [edi], eax
mov edx, dword [esp + 0x50]
mov dword [edi + 4], edx
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], 2
mov dword [esp + 0x78], 2
add esp, 0x64
ret
mov dword [esp + 0x48], eax
lea eax, [0x5c87a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [0x7a14d8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x55abd3
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x50]
jmp 0x55abec
call sym.runtime.gcWriteBarrier3
mov eax, dword [esp + 0x44]
mov dword [edi], eax
mov edx, dword [esp + 0x48]
mov dword [edi + 4], edx
mov ebx, dword [esp + 0x50]
mov dword [edi + 8], ebx
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], ebx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], 3
mov dword [esp + 0x78], 3
add esp, 0x64
ret
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
mov dword [esp + 0x58], ecx
lea edx, [0x5c6b80]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x5de540]
mov dword [eax], ecx
mov ecx, dword [0x7a14d8]
test ecx, ecx
jne 0x55ac40
mov ecx, dword [esp + 0x68]
jmp 0x55ac4b
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x68]
mov dword [edi], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
inc dword [ecx + 0x90]
mov edx, dword [ecx + 0x80]
mov ecx, dword [edx]
lea ebx, [0x5fe3f1]
mov dword [esp], ebx
mov dword [esp + 4], 0x32
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call ecx
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x64
ret
lea eax, [0x5c8720]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [0x7a14d8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x55acc5
mov eax, dword [esp + 0x50]
jmp 0x55acd0
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0x50]
mov dword [edi], eax
mov dword [ecx], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], 1
mov dword [esp + 0x78], 1
add esp, 0x64
ret
mov dword [esp + 0x54], ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
lea edx, [0x5c6c00]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x5de540]
mov dword [eax], ecx
mov ecx, dword [0x7a14d8]
test ecx, ecx
jne 0x55ad26
mov ecx, dword [esp + 0x68]
jmp 0x55ad31
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x68]
mov dword [edi], ecx
mov dword [esp + 0x60], eax
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [esp], edx
mov dword [esp + 4], ecx
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x5c9340]
mov edx, dword [esp + 0x60]
mov dword [edx + 8], ecx
mov ecx, dword [0x7a14d8]
test ecx, ecx
jne 0x55ad71
mov ecx, dword [esp + 0x30]
test ecx, ecx
jmp 0x55ad84
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [edx + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x30]
test ecx, ecx
mov dword [edx + 0xc], eax
je 0x55ad8e
mov eax, dword [ecx + 4]
jmp 0x55ad90
mov eax, ecx
mov dword [edx + 0x10], eax
mov eax, dword [0x7a14d8]
test eax, eax
jne 0x55ada3
mov eax, dword [esp + 0x54]
jmp 0x55adb4
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0x54]
mov dword [edi], eax
mov ecx, dword [edx + 0x14]
mov dword [edi + 4], ecx
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x5c]
inc dword [eax + 0x90]
mov eax, dword [eax + 0x80]
mov ecx, dword [eax]
lea ebx, [0x5f5645]
mov dword [esp], ebx
mov dword [esp + 4], 0x19
mov dword [esp + 8], edx
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
mov edx, eax
call ecx
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x64
ret
call sym.runtime.morestack_noctxt
jmp sym.cmd_internal_obj_riscv.instructionsForOpImmediate