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

Disassembly:
mov ecx, dword [0x7a1414]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x58]
cmp eax, dword [ecx + 8]
jbe 0x594727
sub esp, 0xd8
mov ecx, dword [esp + 0xdc]
mov ebx, dword [ecx + 4]
mov ebx, dword [ebx]
cmp byte [ebx + 8], 1
jne 0x593668
mov ebx, dword [esp + 0xe0]
mov eax, 0x19c5
mov edx, 0x1a15
mov ebp, 0x81f
jmp 0x593696
mov ebx, dword [esp + 0xe0]
cmp word [ebx + 0x74], 0x19c4
jne 0x593687
movzx ebp, word [ebx + 0x34]
cmp word [ebx + 8], bp
je 0x593687
cmp word [ebx + 0xa], bp
jne 0x59368c
mov ebp, 0x811
mov eax, 0x19c4
mov edx, 0x1a04
mov word [esp + 0x24], bp
mov word [esp + 0x28], dx
mov word [esp + 0x2a], ax
movzx esi, word [ebx + 0x74]
cmp si, 2
je 0x5936e6
cmp si, 3
jne 0x59387f
mov dword [esp], ecx
lea eax, [0x5f09f6]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x10
mov byte [esp + 0xc], 1
mov dword [esp + 0x10], 0
call sym.cmd_internal_obj._Link_.LookupABIInit
mov eax, dword [esp + 0x14]
jmp 0x593712
nop
mov dword [esp], ecx
lea eax, [0x5f0a06]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x10
mov byte [esp + 0xc], 1
mov dword [esp + 0x10], 0
call sym.cmd_internal_obj._Link_.LookupABIInit
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xe0]
mov ebx, dword [ecx + 0x40]
mov ebp, dword [ecx + 0x44]
movzx esi, word [esp + 0x28]
mov word [ecx + 0x74], si
mov word [ecx + 0xe], 0x503
mov edi, dword [0x7a14d8]
test edi, edi
je 0x593745
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov edx, dword [ecx + 0x1c]
mov dword [edi + 4], edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebp
mov dword [ecx + 0x1c], eax
mov byte [ecx + 0x3a], 7
movzx eax, word [esp + 0x24]
mov word [ecx + 0x34], ax
mov dword [ecx + 0x40], 0
mov dword [ecx + 0x44], 0
mov edi, dword [0x7a14d8]
test edi, edi
je 0x593781
mov edi, dword [ecx + 0x48]
mov edx, edi
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
mov dword [ecx + 0x48], 0
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
nop
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x5937c3
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 + 0x54], eax
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x6c]
mov ebp, dword [ebx + 0x68]
mov dword [eax + 0x68], ebp
mov dword [eax + 0x6c], ecx
movzx ecx, word [esp + 0x2a]
mov word [eax + 0x74], cx
mov byte [eax + 0xe], 3
mov ebp, dword [esp + 0x2c]
mov dword [eax + 0x14], ebp
mov ebp, dword [esp + 0x30]
mov dword [eax + 0x18], ebp
movzx ebp, word [esp + 0x24]
mov word [eax + 8], bp
mov byte [eax + 0x3a], 7
mov word [eax + 0x34], bp
mov edx, dword [esp + 0xe4]
mov esi, dword [edx]
nop
call esi
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x54]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x59383d
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 ebx, dword [ebx + 0x68]
mov dword [eax + 0x68], ebx
mov dword [eax + 0x6c], ecx
mov word [eax + 0x74], 1
mov byte [eax + 0x3a], 7
movzx ecx, word [esp + 0x24]
mov word [eax + 0x34], cx
movzx eax, word [esp + 0x2a]
mov ecx, dword [esp + 0xdc]
movzx edx, word [esp + 0x28]
mov ebx, dword [esp + 0xe0]
movzx ebp, word [esp + 0x24]
cmp word [ebx + 0x74], ax
jne 0x5938f5
cmp byte [ebx + 0xe], 3
jne 0x5938f5
cmp byte [ebx + 0xf], 1
jne 0x5938f5
mov eax, dword [ebx + 0x1c]
test byte [eax], al
add eax, 0xc
mov dword [esp], eax
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 0x800
je 0x5938cb
movzx eax, word [esp + 0x2a]
mov ecx, dword [esp + 0xdc]
movzx edx, word [esp + 0x28]
mov ebx, dword [esp + 0xe0]
movzx ebp, word [esp + 0x24]
jmp 0x5938f5
movzx ecx, word [esp + 0x28]
mov ebx, dword [esp + 0xe0]
mov word [ebx + 0x74], cx
mov byte [ebx + 0xe], 8
movzx eax, word [esp + 0x2a]
mov ecx, dword [esp + 0xdc]
movzx edx, word [esp + 0x28]
movzx ebp, word [esp + 0x24]
cmp byte [ebx + 0xe], 8
jne 0x593943
cmp byte [ebx + 0xf], 1
je 0x593905
xor esi, esi
jmp 0x593945
mov eax, dword [ebx + 0x1c]
test byte [eax], al
add eax, 0xc
nop
mov dword [esp], eax
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 0x800
sete al
mov ecx, dword [esp + 0xdc]
movzx edx, word [esp + 0x28]
mov ebx, dword [esp + 0xe0]
movzx ebp, word [esp + 0x24]
mov esi, eax
movzx eax, word [esp + 0x2a]
jmp 0x593945
xor esi, esi
xchg esi, eax
test al, al
xchg esi, eax
je 0x593c4d
movzx esi, word [ebx + 0x74]
mov word [esp + 0x26], si
lea edi, [esp + 0x58]
xor eax, eax
call fcn.00468278
cmp byte [ebx + 0x3a], 7
jne 0x593972
cmp dx, si
je 0x593a5f
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
cmp byte [ecx + 8], 1
jne 0x593a1f
lea eax, [0x5c6b80]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x5de540]
mov dword [eax], ecx
mov edx, dword [0x7a14d8]
test edx, edx
jne 0x5939b5
mov ebx, dword [esp + 0xe0]
jmp 0x5939c3
call sym.runtime.gcWriteBarrier1
mov ebx, dword [esp + 0xe0]
mov dword [edi], ebx
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0xdc]
inc dword [ecx + 0x90]
mov edx, dword [ecx + 0x80]
mov ebp, dword [edx]
lea esi, [0x6000f1]
mov dword [esp], esi
mov dword [esp + 4], 0x4b
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call ebp
mov eax, dword [esp + 0xdc]
movzx edx, word [esp + 0x28]
mov ebx, dword [esp + 0xe0]
movzx ebp, word [esp + 0x24]
movzx esi, word [esp + 0x26]
lea ecx, [ebx + 0x34]
lea edi, [esp + 0x58]
mov esi, ecx
call fcn.00468740
mov word [ebx + 0x74], dx
mov byte [ebx + 0x3a], 7
mov word [ebx + 0x34], bp
mov ecx, dword [0x7a14d8]
test ecx, ecx
je 0x593a4d
mov ecx, dword [ebx + 0x48]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
mov dword [ebx + 0x48], 0
mov byte [ebx + 0x3b], 0
mov ecx, 1
jmp 0x593a68
mov eax, dword [esp + 0xdc]
xor ecx, ecx
mov word [ebx + 0xe], 0x503
mov esi, dword [ebx + 0x14]
mov edi, dword [ebx + 0x18]
test esi, esi
xchg esi, ebx
setne bl
xchg esi, ebx
test edi, edi
xchg edi, ebx
setne bl
xchg edi, ebx
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
jne 0x593a95
mov esi, ebx
jmp 0x593b85
mov byte [esp + 0x23], cl
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
nop
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x593ad4
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 ebp, dword [ebx + 0x68]
mov dword [eax + 0x68], ebp
mov dword [eax + 0x6c], ecx
movzx ecx, word [esp + 0x2a]
mov word [eax + 0x74], cx
mov byte [eax + 0xe], 3
movzx ecx, word [ebx + 0x34]
mov word [eax + 8], cx
mov ecx, dword [ebx + 0x14]
mov ebp, dword [ebx + 0x18]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ebp
mov ecx, dword [0x7a14d8]
lea edi, [eax + 0x34]
lea esi, [ebx + 0x34]
test ecx, ecx
je 0x593b58
mov dword [esp + 0x44], eax
mov dword [esp + 0xb0], esi
mov dword [esp + 0xac], edi
lea eax, [0x5da860]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
call sym.runtime.wbMove
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0xe0]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
call fcn.00468740
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
movzx ecx, byte [esp + 0x23]
movzx edx, word [esp + 0x28]
movzx ebp, word [esp + 0x24]
mov esi, ebx
mov ebx, eax
mov eax, dword [esp + 0xdc]
test cl, cl
je 0x593c51
mov dword [esp + 0x44], ebx
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x44]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x593bc8
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 ebx, dword [ebx + 0x68]
mov dword [eax + 0x68], ebx
mov dword [eax + 0x6c], ecx
movzx ecx, word [esp + 0x26]
mov word [eax + 0x74], cx
mov ecx, dword [0x7a14d8]
lea edi, [eax + 0x34]
test ecx, ecx
je 0x593c20
mov dword [esp + 0x44], eax
mov dword [esp + 0xb0], edi
lea eax, [0x5da860]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x58]
mov dword [esp + 8], eax
call sym.runtime.wbMove
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0xb0]
lea esi, [esp + 0x58]
call fcn.00468740
mov byte [eax + 0xe], 7
movzx ecx, word [esp + 0x24]
mov word [eax + 8], cx
mov eax, dword [esp + 0xdc]
movzx edx, word [esp + 0x28]
mov ebp, ecx
mov esi, dword [esp + 0xe0]
jmp 0x593c51
mov eax, ecx
mov esi, ebx
mov ecx, dword [esi + 0x28]
mov ebx, dword [esi + 0x2c]
xor edi, edi
jmp 0x593c66
inc edi
movzx edx, word [esp + 0x28]
movzx ebp, word [esp + 0x24]
cmp edi, ebx
jge 0x593c89
lea ebp, [edi + edi*8]
lea edx, [ecx + ebp*4 + 0x20]
movzx edx, byte [edx]
test dl, dl
jne 0x593c5b
lea ebp, [ecx + ebp*4]
movzx edx, word [esp + 0x28]
mov edi, ebp
movzx ebp, word [esp + 0x24]
jmp 0x593c8b
xor edi, edi
test edi, edi
je 0x593c96
xor edi, edi
jmp 0x594663
cmp byte [esi + 0xf], 1
je 0x593ca0
xor ecx, ecx
jmp 0x593cd7
mov eax, dword [esi + 0x1c]
test byte [eax], al
add eax, 0xc
nop
mov dword [esp], eax
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 0x800
sete al
movzx edx, word [esp + 0x28]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0xe0]
mov ecx, eax
mov eax, dword [esp + 0xdc]
test cl, cl
je 0x593dbf
cmp byte [esi + 0x3b], 1
je 0x593ce9
xor ecx, ecx
jmp 0x593d20
mov eax, dword [esi + 0x48]
test byte [eax], al
add eax, 0xc
nop
mov dword [esp], eax
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 0x800
sete al
movzx edx, word [esp + 0x28]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0xe0]
mov ecx, eax
mov eax, dword [esp + 0xdc]
test cl, cl
je 0x593dba
lea eax, [0x5c6b80]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x5de540]
mov dword [eax], ecx
mov edx, dword [0x7a14d8]
test edx, edx
jne 0x593d55
mov ebx, dword [esp + 0xe0]
jmp 0x593d63
call sym.runtime.gcWriteBarrier1
mov ebx, dword [esp + 0xe0]
mov dword [edi], ebx
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0xdc]
inc dword [ecx + 0x90]
mov edx, dword [ecx + 0x80]
mov ebp, dword [edx]
lea esi, [0x5ff467]
mov dword [esp], esi
mov dword [esp + 4], 0x3b
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call ebp
mov eax, dword [esp + 0xdc]
movzx edx, word [esp + 0x28]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0xe0]
lea ecx, [esi + 8]
jmp 0x593e0a
cmp byte [esi + 0x3b], 1
jne 0x594435
mov eax, dword [esi + 0x48]
test byte [eax], al
add eax, 0xc
mov dword [esp], eax
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 0x800
jne 0x594435
mov eax, dword [esp + 0xe0]
lea ecx, [eax + 0x34]
mov eax, dword [esp + 0xdc]
movzx edx, word [esp + 0x28]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0xe0]
movzx ebx, word [esi + 0x74]
cmp bx, 1
je 0x59406b
cmp bx, 0xc
je 0x594064
cmp bx, 5
je 0x594064
cmp bx, 0xa
je 0x594064
cmp bx, 6
je 0x594064
mov dword [esp + 0x3c], ecx
cmp byte [ecx + 6], 3
je 0x593ec4
lea eax, [0x5c6b80]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x5de540]
mov dword [eax], ecx
mov ecx, dword [0x7a14d8]
test ecx, ecx
jne 0x593e77
mov ecx, dword [esp + 0xe0]
jmp 0x593e85
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xe0]
mov dword [edi], ecx
mov dword [eax + 4], ecx
mov ebx, dword [esp + 0xdc]
inc dword [ebx + 0x90]
mov edx, dword [ebx + 0x80]
mov ebx, dword [edx]
lea ebp, [0x5fbfc2]
mov dword [esp], ebp
mov dword [esp + 4], 0x29
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call ebx
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
nop
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x593eff
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 + 0x40], eax
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x6c]
mov ebp, dword [ebx + 0x68]
mov dword [eax + 0x68], ebp
mov dword [eax + 0x6c], ecx
mov edx, dword [esp + 0xe4]
mov ecx, dword [edx]
nop
call ecx
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 0x593f4d
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 + 0x28]
mov word [ebx + 0x74], cx
mov byte [ebx + 0xe], 3
mov ecx, dword [0x7a14d8]
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0x14]
test ecx, ecx
je 0x593f8a
call sym.runtime.gcWriteBarrier2
mov dword [edi], edx
mov ecx, dword [ebx + 0x1c]
mov dword [edi + 4], ecx
mov dword [esp + 0x48], eax
mov dword [ebx + 0x1c], edx
mov byte [ebx + 0xf], 5
mov byte [ebx + 0x3a], 7
movzx ecx, word [esp + 0x24]
mov word [ebx + 0x34], cx
mov edx, dword [esp + 0xe0]
movzx ebx, word [edx + 0x74]
mov word [eax + 0x74], bx
mov ebx, dword [0x7a14d8]
lea edi, [eax + 8]
lea esi, [edx + 8]
mov dword [esp + 0xb0], esi
lea ebp, [eax + 0x34]
lea ecx, [edx + 0x34]
mov dword [esp + 0xac], ecx
test ebx, ebx
je 0x594044
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebp
lea eax, [0x5da860]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
call sym.runtime.wbMove
lea eax, [0x5da860]
mov dword [esp], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xac]
mov dword [esp + 8], edx
call sym.runtime.wbMove
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xe0]
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xa8]
call fcn.00468740
mov edi, ebp
mov esi, dword [esp + 0xac]
call fcn.00468740
mov ecx, dword [edx + 0x28]
mov ebx, dword [edx + 0x2c]
xor ebp, ebp
jmp 0x59443d
add esp, 0xd8
ret
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
cmp byte [ecx + 8], 1
jne 0x59407d
mov ecx, 1
jmp 0x5940af
mov ecx, dword [esi + 0x48]
test ecx, ecx
jne 0x594088
xor ecx, ecx
jmp 0x5940af
lea eax, [ecx + 0xc]
mov dword [esp], eax
call sym.sync_atomic.LoadUint32
mov eax, dword [esp + 4]
test eax, 0x800
setne al
mov esi, dword [esp + 0xe0]
mov ecx, eax
mov eax, dword [esp + 0xdc]
test cl, cl
jne 0x5940bc
movzx ecx, word [esi + 0x78]
test cx, cx
je 0x5940c3
add esp, 0xd8
ret
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
nop
call eax
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x5940fe
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 + 0x50], eax
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x6c]
mov ebp, dword [ebx + 0x68]
mov dword [eax + 0x68], ebp
mov dword [eax + 0x6c], ecx
mov edx, dword [esp + 0xe4]
mov ecx, dword [edx]
nop
call ecx
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 0x59414c
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 + 0x4c], 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 [ebx + 0x74], 0x19c4
mov word [ebx + 0xe], 0x203
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
lea ecx, [0x5f34ae]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x15
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 0x5941ab
mov edx, dword [esp + 0x50]
jmp 0x5941bc
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov edx, dword [esp + 0x50]
mov ebx, dword [edx + 0x1c]
mov dword [edi + 4], ebx
mov dword [edx + 0x1c], ecx
mov byte [edx + 0x3a], 7
mov word [edx + 0x34], 0x813
mov ecx, dword [esp + 0xe0]
movzx edx, word [ecx + 0x74]
mov ebx, dword [esp + 0x4c]
mov word [ebx + 0x74], dx
movzx edx, byte [ecx + 0x7e]
mov byte [ebx + 0x7e], dl
mov edx, dword [0x7a14d8]
lea edi, [ebx + 8]
lea esi, [ecx + 8]
mov dword [esp + 0xb0], esi
test edx, edx
je 0x594230
mov dword [esp + 0xac], edi
lea eax, [0x5da860]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
call sym.runtime.wbMove
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
call fcn.00468740
mov ecx, dword [esp + 0xe0]
mov edx, dword [ecx + 0x28]
test edx, edx
je 0x59432f
mov eax, dword [ecx + 0x2c]
mov ebp, dword [ebx + 0x2c]
lea esi, [ebp + eax]
mov edi, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x28]
cmp edi, esi
jae 0x5942a3
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0xa0], edx
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
lea ecx, [0x5cf780]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x9c], ecx
lea ebx, [0x5cf780]
mov dword [esp], ebx
sub esi, ebp
sub edi, ebp
lea ebp, [ebp + ebp*8]
xchg edi, ebx
neg ebx
xchg edi, ebx
shl ebp, 2
sar edi, 0x1f
and ebp, edi
add ebp, ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
call sym.runtime.typedslicecopy
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x30], eax
mov eax, dword [0x7a14d8]
test eax, eax
jne 0x59430d
mov edx, dword [esp + 0x9c]
jmp 0x594321
call sym.runtime.gcWriteBarrier2
mov edx, dword [esp + 0x9c]
mov dword [edi], edx
mov ebx, dword [ecx + 0x28]
mov dword [edi + 4], ebx
mov dword [ecx + 0x28], edx
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x4c]
movzx edx, word [ecx + 0x76]
mov word [ebx + 0x76], dx
mov edx, dword [0x7a14d8]
lea edi, [ebx + 0x34]
lea esi, [ecx + 0x34]
mov dword [esp + 0xac], esi
test edx, edx
je 0x594384
mov dword [esp + 0xa8], edi
lea eax, [0x5da860]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
call sym.runtime.wbMove
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xa8]
call fcn.00468740
mov byte [ebx + 0x3a], 3
mov word [ebx + 0x78], 1
nop
mov ecx, dword [esp + 0xe0]
mov word [ecx + 0x74], 7
mov byte [ecx + 0x7e], 0
mov edx, dword [0x7a14d8]
test edx, edx
je 0x5943f2
mov eax, dword [ecx + 0x28]
call sym.runtime.gcWriteBarrier1
mov dword [edi], eax
lea eax, [0x5da860]
mov dword [esp], eax
mov edx, dword [esp + 0xb0]
mov dword [esp + 4], edx
call sym.runtime.wbZero
lea eax, [0x5da860]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
call sym.runtime.wbZero
mov ecx, dword [esp + 0xe0]
mov edi, dword [esp + 0xb0]
xor eax, eax
call fcn.00468278
mov ecx, dword [esp + 0xe0]
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0x30], 0
mov dword [ecx + 0x28], 0
mov word [ecx + 0x76], 0
mov edi, dword [esp + 0xac]
call fcn.00468278
add esp, 0xd8
ret
add esp, 0xd8
ret
inc ebp
cmp ebp, ebx
jge 0x594457
lea esi, [ebp + ebp*8]
lea edi, [ecx + esi*4 + 0x20]
movzx edi, byte [edi]
xchg edi, eax
test al, al
xchg edi, eax
jne 0x59443c
lea ecx, [ecx + esi*4]
jmp 0x594459
xor ecx, ecx
test ecx, ecx
je 0x59455b
lea edi, [esp + 0x78]
mov esi, ecx
call fcn.00468740
lea edi, [esp + 0xb4]
xor eax, eax
call fcn.00468277
lea edi, [esp + 0xb4]
lea esi, [esp + 0x78]
call fcn.00468740
mov byte [esp + 0xd4], 0
mov ecx, dword [esp + 0x48]
mov ebx, dword [ecx + 0x30]
mov ebp, dword [ecx + 0x2c]
inc ebp
mov eax, dword [ecx + 0x28]
cmp ebx, ebp
jae 0x594500
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5cf780]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x48]
mov dword [ebx + 0x30], eax
mov eax, dword [0x7a14d8]
test eax, eax
je 0x5944f0
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebp, dword [ebx + 0x28]
mov dword [edi + 4], ebp
mov dword [ebx + 0x28], ecx
mov ebp, edx
mov eax, ecx
mov ecx, ebx
mov edx, dword [esp + 0xe0]
mov dword [ecx + 0x2c], ebp
mov ebx, dword [0x7a14d8]
lea ebp, [ebp + ebp*8]
lea edi, [eax + ebp*4 - 0x24]
test ebx, ebx
je 0x59454b
mov dword [esp + 0x98], edi
lea eax, [0x5cf780]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xb4]
mov dword [esp + 8], eax
call sym.runtime.wbMove
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xe0]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xb4]
call fcn.00468736
mov eax, dword [esp + 0x48]
cmp byte [edx + 0xf], 1
jne 0x59458b
movzx ecx, word [esp + 0x24]
mov word [eax + 8], cx
mov byte [eax + 0xf], 0
mov ecx, dword [0x7a14d8]
test ecx, ecx
je 0x594582
mov ecx, dword [eax + 0x1c]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
mov dword [eax + 0x1c], 0
jmp 0x5945bd
cmp byte [edx + 0x3b], 1
jne 0x594651
movzx ecx, word [esp + 0x24]
mov word [eax + 0x34], cx
mov byte [eax + 0x3b], 0
mov ecx, dword [0x7a14d8]
test ecx, ecx
je 0x5945b6
mov ecx, dword [eax + 0x48]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
mov dword [eax + 0x48], 0
nop
mov word [edx + 0x74], 7
mov byte [edx + 0x7e], 0
mov ecx, dword [0x7a14d8]
test ecx, ecx
je 0x594615
mov eax, dword [edx + 0x28]
call sym.runtime.gcWriteBarrier1
mov dword [edi], eax
lea eax, [0x5da860]
mov dword [esp], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 4], ecx
call sym.runtime.wbZero
lea eax, [0x5da860]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
call sym.runtime.wbZero
mov edx, dword [esp + 0xe0]
mov edi, dword [esp + 0xb0]
xor eax, eax
call fcn.00468278
mov dword [edx + 0x2c], 0
mov dword [edx + 0x30], 0
mov dword [edx + 0x28], 0
mov word [edx + 0x76], 0
mov edi, dword [esp + 0xac]
call fcn.00468278
add esp, 0xd8
ret
add esp, 0xd8
ret
inc edi
movzx edx, word [esp + 0x28]
movzx ebp, word [esp + 0x24]
cmp edi, ebx
jge 0x594684
lea ebp, [edi + edi*8]
lea edx, [ecx + ebp*4 + 0x20]
movzx edx, byte [edx]
test dl, dl
jne 0x594658
lea ecx, [ecx + ebp*4]
movzx edx, word [esp + 0x28]
movzx ebp, word [esp + 0x24]
jmp 0x594686
xor ecx, ecx
cmp byte [ecx + 7], 1
jne 0x593c96
lea eax, [0x5c6b80]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [0x5de540]
mov dword [eax], ecx
mov edx, dword [0x7a14d8]
test edx, edx
jne 0x5946bd
mov ebx, dword [esp + 0xe0]
jmp 0x5946cb
call sym.runtime.gcWriteBarrier1
mov ebx, dword [esp + 0xe0]
mov dword [edi], ebx
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0xdc]
inc dword [ecx + 0x90]
mov edx, dword [ecx + 0x80]
mov ebp, dword [edx]
lea esi, [0x5fbfc2]
mov dword [esp], esi
mov dword [esp + 4], 0x29
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call ebp
mov eax, dword [esp + 0xdc]
movzx edx, word [esp + 0x28]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0xe0]
jmp 0x593c96
call sym.runtime.morestack_noctxt
jmp sym.cmd_internal_obj_x86.rewriteToUseGot