Function at 0x596740
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 0x59753c
sub esp, 0x84
mov eax, dword [esp + 0x88]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
movzx ecx, byte [ecx + 8]
cmp cl, 4
jne 0x59679d
mov edx, 0x1ade
mov ebx, 0x1aac
mov ebp, 0x19c4
mov esi, 0x1a04
mov edi, 0x1b65
mov edx, 0x1899
mov word [esp + 0x26], dx
mov edx, 0x1ade
jmp 0x5967c5
mov edx, 0x1adf
mov ebx, 0x1aad
mov ebp, 0x19c5
mov esi, 0x1a15
mov edi, 0x1b68
mov edx, 0x189c
mov word [esp + 0x26], dx
mov edx, 0x1adf
cmp cl, 1
jne 0x5967d1
mov ecx, 0x81c
jmp 0x5967d6
mov ecx, 0x810
mov word [esp + 0x1a], di
mov word [esp + 0x18], cx
mov word [esp + 0x22], si
mov word [esp + 0x24], bp
mov word [esp + 0x20], bx
mov ebx, dword [eax + 0x24]
test ebx, ebx
je 0x596aa0
mov word [esp + 0x1e], dx
mov ebx, dword [esp + 0x8c]
mov edi, dword [ebx + 0x34]
test edi, edi
je 0x596820
lea ebp, [0x5d78a0]
cmp dword [edi], ebp
jne 0x59681c
mov edi, dword [edi + 4]
jmp 0x596822
xor edi, edi
jmp 0x596822
xor edi, edi
mov dword [esp], edi
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.cmd_internal_obj._FuncInfo_.SpillRegisterArgs
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x596861
lea edx, [0x5d78a0]
cmp dword [ecx], edx
jne 0x59685d
mov ecx, dword [ecx + 4]
jmp 0x596863
xor ecx, ecx
jmp 0x596863
xor ecx, ecx
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
test byte [eax], al
add eax, 0xc
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x50], ecx
mov dword [esp], eax
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 0x20
jne 0x59688f
mov eax, dword [esp + 0x50]
jmp 0x5968ec
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
nop
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x50]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x5968c7
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 ebp, dword [ebx + 0x6c]
mov ebx, dword [ebx + 0x68]
mov dword [eax + 0x68], ebx
mov dword [eax + 0x6c], ebp
movzx ebx, word [esp + 0x1e]
mov word [eax + 0x74], bx
mov byte [eax + 0xe], 7
mov word [eax + 8], 0x812
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x94]
mov ecx, dword [edx]
call ecx
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x596927
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 [esp + 0x74], eax
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x8c]
lea edx, [ecx + 0xc]
mov ebp, dword [ebx + 0x6c]
mov ebx, dword [ebx + 0x68]
mov dword [eax + 0x68], ebx
mov dword [eax + 0x6c], ebp
mov word [eax + 0x74], 1
mov word [eax + 0x3a], 0x101
mov dword [esp], edx
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 0x88]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov ebx, dword [esp + 4]
shr ebx, 0x13
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], bl
mov dword [esp + 0x10], 0
call sym.cmd_internal_obj._Link_.LookupABIInit
mov eax, dword [0x7a14d8]
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x59699f
mov eax, dword [esp + 0x74]
jmp 0x5969b0
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [esp + 0x74]
mov edx, dword [eax + 0x48]
mov dword [edi + 4], edx
mov dword [eax + 0x48], ecx
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x34]
test edx, edx
je 0x5969d4
lea ebx, [0x5d78a0]
cmp dword [edx], ebx
jne 0x5969d0
mov edx, dword [edx + 4]
jmp 0x5969d6
xor edx, edx
jmp 0x5969d6
xor edx, edx
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
test byte [eax], al
add eax, 0xc
mov dword [esp], eax
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 0x20
jne 0x5969fa
mov eax, dword [esp + 0x74]
jmp 0x596a57
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
nop
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x74]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x596a32
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 ecx, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x68]
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], ecx
movzx ecx, word [esp + 0x20]
mov word [eax + 0x74], cx
mov byte [eax + 0x3a], 7
mov word [eax + 0x34], 0x812
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x34]
test edx, edx
je 0x596a78
lea ebx, [0x5d78a0]
cmp dword [edx], ebx
jne 0x596a74
mov edx, dword [edx + 4]
jmp 0x596a7a
xor edx, edx
jmp 0x596a7a
xor edx, edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.cmd_internal_obj._FuncInfo_.UnspillRegisterArgs
mov eax, dword [esp + 0xc]
mov edx, eax
mov eax, dword [esp + 0x88]
jmp 0x596aa7
mov edx, dword [esp + 0x90]
mov dword [esp + 0x38], edx
mov dword [esp], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x94]
mov dword [esp + 0xc], ebx
call sym.cmd_internal_obj_x86.loadG
movzx eax, word [esp + 0x14]
mov word [esp + 0x1c], ax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x98]
cmp edx, 0x80
jle 0x596f1e
cmp edx, 0x1000
jg 0x596cad
sar edx, 0x1f
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x94]
mov ebx, dword [ecx]
nop
mov edx, ecx
call ebx
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x48]
mov ebp, dword [ebx + 4]
mov esi, dword [esp + 0x98]
add esi, 0xffffff80
mov edi, dword [esp + 0x2c]
adc edi, 0xffffffff
xor ebx, ebx
sub ebx, esi
mov esi, 0
sbb esi, edi
test ecx, ecx
je 0x596b5f
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 [esp + 0x48]
mov edx, dword [ecx + 4]
mov dword [edi + 0xc], edx
mov dword [esp + 0x6c], eax
mov dword [eax + 4], ebp
mov ecx, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov ebp, dword [ecx + 0x6c]
mov ecx, dword [ecx + 0x68]
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], ebp
movzx ecx, word [esp + 0x24]
mov word [eax + 0x74], cx
mov byte [eax + 0xe], 3
mov word [eax + 8], 0x814
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], esi
mov byte [eax + 0x3a], 7
movzx ecx, word [esp + 0x18]
mov word [eax + 0x34], cx
mov edx, dword [esp + 0x94]
mov ebx, dword [edx]
nop
call ebx
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x596bd7
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 [esp + 0x68], eax
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x68]
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], ecx
movzx ecx, word [esp + 0x26]
mov word [eax + 0x74], cx
mov byte [eax + 0xe], 7
movzx ecx, word [esp + 0x18]
mov word [eax + 8], cx
mov byte [eax + 0x3a], 3
movzx ecx, word [esp + 0x1c]
mov word [eax + 0x34], cx
mov edx, dword [esp + 0x88]
mov ebx, dword [edx + 4]
mov ebx, dword [ebx]
mov ebx, dword [ebx + 0x14]
mov ebp, ebx
shl ebx, 1
mov dword [eax + 0x40], ebx
mov ebx, ebp
shr ebp, 0x1f
sar ebx, 0x1f
shl ebx, 1
or ebx, ebp
mov dword [eax + 0x44], ebx
mov ebx, dword [esp + 0x8c]
test byte [ebx], al
lea ebp, [ebx + 0xc]
mov dword [esp], ebp
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 2
je 0x596c80
mov ecx, dword [esp + 0x88]
mov edx, dword [ecx + 4]
mov edx, dword [edx]
mov edx, dword [edx + 0x14]
mov eax, 3
mov ebx, edx
mul edx
mov ebp, dword [esp + 0x68]
mov dword [ebp + 0x40], eax
sar ebx, 0x1f
lea ebx, [ebx + ebx*2]
add edx, ebx
mov dword [ebp + 0x44], edx
jmp 0x596c8b
mov ecx, dword [esp + 0x88]
mov ebp, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.cmd_internal_obj._Link_.StartUnsafePoint
mov eax, dword [esp + 0xc]
xor ecx, ecx
jmp 0x597024
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
nop
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x48]
mov ebp, dword [ebx + 4]
mov esi, dword [esp + 0x98]
add esi, 0xffffff80
mov dword [esp + 0x28], esi
test ecx, ecx
je 0x596cf3
call sym.runtime.gcWriteBarrier4
mov dword [edi], ebp
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov edx, dword [ebx + 4]
mov dword [edi + 0xc], edx
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x68]
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], ecx
movzx ecx, word [esp + 0x22]
mov word [eax + 0x74], cx
mov byte [eax + 0xe], 7
mov word [eax + 8], 0x814
mov byte [eax + 0x3a], 7
movzx ecx, word [esp + 0x18]
mov word [eax + 0x34], cx
mov edx, dword [esp + 0x88]
mov dword [esp], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.cmd_internal_obj._Link_.StartUnsafePoint
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x94]
mov ecx, dword [edx]
nop
call ecx
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov edx, dword [esp + 0x44]
mov ebx, dword [edx + 4]
test ecx, ecx
je 0x596d83
call sym.runtime.gcWriteBarrier4
mov dword [edi], ebx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
mov ecx, dword [edx + 4]
mov dword [edi + 0xc], ecx
mov dword [esp + 0x64], eax
mov dword [eax + 4], ebx
mov dword [edx + 4], eax
mov ecx, dword [esp + 0x98]
mov ebx, ecx
sar ecx, 0x1f
add ebx, 0xffffff80
adc ecx, 0xffffffff
mov ebx, dword [edx + 0x6c]
mov esi, dword [edx + 0x68]
mov dword [eax + 0x68], esi
mov dword [eax + 0x6c], ebx
movzx ebx, word [esp + 0x1a]
mov word [eax + 0x74], bx
mov byte [eax + 0xe], 4
mov ebx, dword [esp + 0x28]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], ecx
mov byte [eax + 0x3a], 7
movzx ecx, word [esp + 0x18]
mov word [eax + 0x34], cx
mov edx, dword [esp + 0x94]
mov ebx, dword [edx]
nop
call ebx
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x64]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x596e07
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 [esp + 0x3c], eax
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x6c]
mov ebx, dword [ebx + 0x68]
mov dword [eax + 0x68], ebx
mov dword [eax + 0x6c], ecx
mov word [eax + 0x74], 0x1979
mov byte [eax + 0x3a], 1
mov edx, dword [esp + 0x94]
mov ecx, dword [edx]
nop
call ecx
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x596e5f
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 [esp + 0x60], eax
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x68]
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], ecx
movzx ecx, word [esp + 0x26]
mov word [eax + 0x74], cx
mov byte [eax + 0xe], 7
movzx ecx, word [esp + 0x18]
mov word [eax + 8], cx
mov byte [eax + 0x3a], 3
movzx ecx, word [esp + 0x1c]
mov word [eax + 0x34], cx
mov edx, dword [esp + 0x88]
mov ebp, dword [edx + 4]
mov ebp, dword [ebp]
mov ebp, dword [ebp + 0x14]
mov esi, ebp
shl ebp, 1
mov dword [eax + 0x40], ebp
mov ebp, esi
shr esi, 0x1f
sar ebp, 0x1f
shl ebp, 1
or ebp, esi
mov dword [eax + 0x44], ebp
mov ebp, dword [esp + 0x8c]
test byte [ebp], al
lea esi, [ebp + 0xc]
mov dword [esp], esi
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 2
je 0x596f08
mov ecx, dword [esp + 0x88]
mov ebx, dword [ecx + 4]
mov ebx, dword [ebx]
mov ebx, dword [ebx + 0x14]
mov eax, 3
mul ebx
mov ebp, dword [esp + 0x60]
mov dword [ebp + 0x40], eax
sar ebx, 0x1f
lea ebx, [ebx + ebx*2]
add ebx, edx
mov dword [ebp + 0x44], ebx
jmp 0x596f13
mov ecx, dword [esp + 0x88]
mov ebp, dword [esp + 0x60]
mov eax, ebp
mov ecx, dword [esp + 0x3c]
jmp 0x597024
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
nop
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x48]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x596f56
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 [esp + 0x70], eax
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x68]
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], ecx
movzx ecx, word [esp + 0x26]
mov word [eax + 0x74], cx
mov byte [eax + 0xe], 7
mov word [eax + 8], 0x814
mov byte [eax + 0x3a], 3
movzx ecx, word [esp + 0x1c]
mov word [eax + 0x34], cx
mov edx, dword [esp + 0x88]
mov ebx, dword [edx + 4]
mov ebx, dword [ebx]
mov ebx, dword [ebx + 0x14]
mov ebp, ebx
shl ebx, 1
mov dword [eax + 0x40], ebx
mov ebx, ebp
shr ebp, 0x1f
sar ebx, 0x1f
shl ebx, 1
or ebx, ebp
mov dword [eax + 0x44], ebx
mov ebx, dword [esp + 0x8c]
test byte [ebx], al
lea ebp, [ebx + 0xc]
mov dword [esp], ebp
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 2
je 0x596ffc
mov ecx, dword [esp + 0x88]
mov edx, dword [ecx + 4]
mov edx, dword [edx]
mov edx, dword [edx + 0x14]
mov eax, 3
mov ebx, edx
mul edx
mov ebp, dword [esp + 0x70]
mov dword [ebp + 0x40], eax
sar ebx, 0x1f
lea ebx, [ebx + ebx*2]
add edx, ebx
mov dword [ebp + 0x44], edx
jmp 0x597007
mov ecx, dword [esp + 0x88]
mov ebp, dword [esp + 0x70]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.cmd_internal_obj._Link_.StartUnsafePoint
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x94]
mov ebx, dword [edx]
call ebx
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x597063
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 [esp + 0x5c], eax
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x68]
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], ecx
mov word [eax + 0x74], 0x1982
mov byte [eax + 0x3a], 1
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], 0xffffffff
call sym.cmd_internal_obj._Link_.EndUnsafePoint
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x34]
mov edx, dword [esp + 0x14]
test ecx, ecx
je 0x5970d6
lea ebx, [0x5d78a0]
cmp dword [ecx], ebx
jne 0x5970d2
mov ecx, dword [ecx + 4]
jmp 0x5970de
xor ecx, ecx
jmp 0x5970de
lea ebx, [0x5d78a0]
xor ecx, ecx
mov ecx, dword [ecx + 0x14]
jmp 0x5970e5
mov ecx, ebp
mov ebp, dword [ecx + 4]
test ebp, ebp
jne 0x5970e3
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
nop
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x78]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x59712c
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 ecx, dword [esp + 0x98]
neg ecx
mov ebp, dword [ebx + 0x6c]
mov ebx, dword [ebx + 0x68]
mov dword [eax + 0x68], ebx
mov dword [eax + 0x6c], ebp
mov word [eax + 0x74], 7
mov dword [eax + 0x70], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], eax
call sym.cmd_internal_obj._Link_.EmitEntryStackMap
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.cmd_internal_obj._Link_.StartUnsafePoint
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x5971bc
lea edx, [0x5d78a0]
cmp dword [ecx], edx
jne 0x5971b8
mov ecx, dword [ecx + 4]
jmp 0x5971be
xor ecx, ecx
jmp 0x5971be
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov dword [esp], ecx
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 8], ecx
call sym.cmd_internal_obj._FuncInfo_.SpillRegisterArgs
mov eax, dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x94]
mov ecx, dword [edx]
nop
call ecx
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov edx, dword [esp + 0x54]
mov ebx, dword [edx + 4]
test ecx, ecx
je 0x59721d
call sym.runtime.gcWriteBarrier4
mov dword [edi], ebx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
mov ecx, dword [edx + 4]
mov dword [edi + 0xc], ecx
mov dword [eax + 4], ebx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0x6c]
mov edx, dword [edx + 0x68]
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], ecx
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x34]
test edx, edx
je 0x597250
lea ebx, [0x5d78a0]
cmp dword [edx], ebx
jne 0x59724c
mov edx, dword [edx + 4]
jmp 0x597252
xor edx, edx
jmp 0x597252
xor edx, edx
mov dword [esp + 0x58], eax
mov edx, dword [edx + 0x14]
mov ebx, dword [edx + 0x68]
mov edx, dword [edx + 0x6c]
mov dword [eax + 0x68], ebx
mov dword [eax + 0x6c], edx
mov word [eax + 0x74], 1
mov word [eax + 0x3a], 0x101
lea edx, [ecx + 0xc]
mov dword [esp], edx
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 2
je 0x597294
mov eax, 0x12
lea ecx, [0x5f1aca]
jmp 0x5972ed
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x5972b5
lea edx, [0x5d78a0]
cmp dword [ecx], edx
jne 0x5972b1
mov ecx, dword [ecx + 4]
jmp 0x5972b7
xor ecx, ecx
jmp 0x5972b7
xor ecx, ecx
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
test byte [eax], al
add eax, 0xc
mov dword [esp], eax
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 0x20
je 0x5972e2
mov eax, 0x11
lea ecx, [0x5f11e2]
jmp 0x5972ed
mov eax, 0x18
lea ecx, [0x5f4e23]
mov edx, dword [esp + 0x88]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call sym.cmd_internal_obj._Link_.LookupInit
mov eax, dword [0x7a14d8]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x597320
mov eax, dword [esp + 0x58]
jmp 0x597331
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0x48]
mov dword [edi + 4], edx
mov dword [eax + 0x48], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
call sym.cmd_internal_obj_x86.progedit
mov eax, dword [esp + 0x58]
jmp 0x597387
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 8], ecx
call sym.cmd_internal_obj_x86.progedit
mov eax, dword [esp + 0x80]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x597358
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], 0xffffffff
call sym.cmd_internal_obj._Link_.EndUnsafePoint
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x5973dd
lea ecx, [0x5d78a0]
cmp dword [eax], ecx
jne 0x5973d9
mov eax, dword [eax + 4]
jmp 0x5973df
xor eax, eax
jmp 0x5973df
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
call sym.cmd_internal_obj._FuncInfo_.UnspillRegisterArgs
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x94]
mov ecx, dword [edx]
nop
call ecx
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov edx, dword [esp + 0x30]
mov ebx, dword [edx + 4]
test ecx, ecx
je 0x59743a
call sym.runtime.gcWriteBarrier4
mov dword [edi], ebx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
mov ecx, dword [edx + 4]
mov dword [edi + 0xc], ecx
mov dword [eax + 4], ebx
mov dword [edx + 4], eax
mov ecx, dword [edx + 0x6c]
mov edx, dword [edx + 0x68]
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], ecx
mov word [eax + 0x74], 6
mov byte [eax + 0x3a], 1
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx + 4]
lea edx, [0x5de540]
mov dword [eax + 0x4c], edx
mov ebx, dword [0x7a14d8]
test ebx, ebx
je 0x59747d
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebx, dword [eax + 0x50]
mov dword [edi + 4], ebx
mov dword [eax + 0x50], ecx
mov ecx, dword [esp + 0x98]
mov dword [eax + 0x70], ecx
nop
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0x3a], 1
jne 0x597523
mov dword [eax + 0x4c], edx
mov ecx, dword [0x7a14d8]
test ecx, ecx
jne 0x5974ac
mov ecx, dword [esp + 0x34]
jmp 0x5974bd
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x34]
mov dword [edi], ecx
mov ebx, dword [eax + 0x50]
mov dword [edi + 4], ebx
mov dword [eax + 0x50], ecx
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x5974ec
nop
cmp byte [eax + 0x3a], 1
jne 0x59750b
mov dword [eax + 0x4c], edx
mov edx, dword [0x7a14d8]
test edx, edx
je 0x5974e9
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov edx, dword [eax + 0x50]
mov dword [edi + 4], edx
mov dword [eax + 0x50], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xa0], eax
movzx eax, word [esp + 0x1c]
mov word [esp + 0xa4], ax
add esp, 0x84
ret
lea eax, [0x5c9180]
mov dword [esp], eax
lea eax, [0x63bba8]
mov dword [esp + 4], eax
call sym.runtime.gopanic
lea eax, [0x5c9180]
mov dword [esp], eax
lea eax, [0x63bba8]
mov dword [esp + 4], eax
call sym.runtime.gopanic
nop
call sym.runtime.morestack_noctxt
jmp sym.cmd_internal_obj_x86.stacksplit