Function at 0x594740
Capabilities:
Enumerate pe sections
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 0x594e36
sub esp, 0x34
mov eax, dword [esp + 0x3c]
movzx ecx, word [eax + 0x78]
test cx, cx
jne 0x59495a
movzx ecx, word [eax + 0x74]
cmp cx, 0xc
je 0x594956
cmp cx, 5
je 0x594956
cmp cx, 1
je 0x594956
cmp cx, 0xa
je 0x594956
cmp cx, 6
je 0x594956
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x5948c6
movzx ebx, byte [eax + 0xe]
cmp bl, 3
je 0x5947bb
cmp bl, 8
jne 0x5948c6
movzx ebx, word [eax + 8]
test bx, bx
jne 0x5948c6
cmp byte [ecx + 8], 7
je 0x5948c6
movzx ecx, byte [eax + 0xf]
cmp cl, 1
je 0x5947e9
cmp cl, 2
je 0x5947e9
cmp cl, 5
jne 0x5948c6
cmp byte [eax + 0xe], 8
jne 0x5948c6
cmp byte [eax + 0x3a], 7
je 0x5948c6
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
nop
call eax
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 0x594832
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 [ebx + 0x74]
mov word [eax + 0x74], cx
mov byte [eax + 0xe], 7
mov word [eax + 8], 0x811
mov ecx, dword [0x7a14d8]
lea edi, [eax + 0x34]
lea esi, [ebx + 0x34]
test ecx, ecx
je 0x594890
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], edi
lea eax, [0x5da860]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
call sym.runtime.wbMove
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
call fcn.00468740
mov word [ebx + 0x74], 0x1a04
mov byte [ebx + 0x3a], 7
mov word [ebx + 0x34], 0x811
mov eax, dword [0x7a14d8]
test eax, eax
je 0x5948b9
mov eax, dword [ebx + 0x48]
call sym.runtime.gcWriteBarrier1
mov dword [edi], eax
mov dword [ebx + 0x48], 0
mov byte [ebx + 0x3b], 0
mov eax, ebx
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x594909
movzx ebx, byte [eax + 0xe]
cmp bl, 3
je 0x5948db
cmp bl, 8
jne 0x594909
movzx ebx, word [eax + 8]
test bx, bx
jne 0x594909
cmp byte [ecx + 8], 7
je 0x594909
movzx ecx, byte [eax + 0xf]
cmp cl, 1
je 0x5949dc
cmp cl, 2
je 0x5949dc
cmp cl, 5
je 0x5949dc
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x59494c
movzx ebx, byte [eax + 0x3a]
cmp bl, 3
je 0x59491e
cmp bl, 8
jne 0x59494c
movzx ebx, word [eax + 0x34]
test bx, bx
jne 0x59494c
cmp byte [ecx + 8], 7
je 0x59494c
movzx ecx, byte [eax + 0x3b]
cmp cl, 1
je 0x5949dc
cmp cl, 2
je 0x5949dc
cmp cl, 5
je 0x5949dc
mov ecx, dword [eax + 0x2c]
mov ebx, dword [eax + 0x28]
xor edx, edx
jmp 0x59495f
add esp, 0x34
ret
add esp, 0x34
ret
inc edx
cmp edx, ecx
jge 0x594978
lea ebp, [edx + edx*8]
lea esi, [ebx + ebp*4 + 0x20]
movzx esi, byte [esi]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x59495e
lea ebp, [ebx + ebp*4]
jmp 0x59497a
xor ebp, ebp
test ebp, ebp
je 0x594982
xor edx, edx
jmp 0x594987
add esp, 0x34
ret
inc edx
cmp edx, ecx
jge 0x5949a0
lea ebp, [edx + edx*8]
lea esi, [ebx + ebp*4 + 0x20]
movzx esi, byte [esi]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x594986
lea ecx, [ebx + ebp*4]
jmp 0x5949a2
xor ecx, ecx
mov ebx, dword [ecx + 0x14]
test ebx, ebx
je 0x594982
movzx ebp, byte [ecx + 6]
xchg ebp, eax
cmp al, 3
xchg ebp, eax
je 0x5949bb
xchg ebp, eax
cmp al, 8
xchg ebp, eax
jne 0x594982
movzx ebp, word [ecx]
test bp, bp
jne 0x594982
cmp byte [ebx + 8], 7
je 0x594982
movzx ecx, byte [ecx + 7]
cmp cl, 1
je 0x5949dc
cmp cl, 2
je 0x5949dc
cmp cl, 5
jne 0x594982
movzx ecx, word [eax + 0x74]
cmp cx, 0x19c4
je 0x5949ee
cmp cx, 0x1a04
jne 0x5949fe
movzx ecx, word [eax + 0x34]
cmp word [eax + 8], cx
je 0x5949fe
cmp word [eax + 0xa], cx
jne 0x594a03
mov ecx, 0x811
mov word [esp + 0x1e], cx
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
nop
call eax
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 0x594a3d
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 + 0x24], 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 word [eax + 0x78], 1
mov edx, dword [esp + 0x40]
mov ecx, dword [edx]
nop
call ecx
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x7a14d8]
mov ebx, dword [esp + 0x24]
mov ebp, dword [ebx + 4]
test ecx, ecx
je 0x594a8e
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 + 0x20], eax
mov dword [eax + 4], ebp
mov dword [ebx + 4], eax
movzx ecx, word [esp + 0x1e]
movsx edx, cx
mov ebp, dword [ebx + 0x6c]
mov esi, dword [ebx + 0x68]
mov dword [eax + 0x68], esi
mov dword [eax + 0x6c], ebp
mov word [eax + 0x78], 1
mov word [ebx + 0x74], 1
mov dword [esp], edx
call sym.cmd_internal_obj_x86.rconv
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.strings.ToLower
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], 0
lea edx, [0x5f2494]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x13
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
lea eax, [0x601b3c]
mov dword [esp + 0xc], eax
call sym.cmd_internal_obj._Link_.LookupInit
mov eax, dword [0x7a14d8]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x594b3c
mov edx, dword [esp + 0x24]
jmp 0x594b4d
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov edx, dword [esp + 0x24]
mov ebx, dword [edx + 0x48]
mov dword [edi + 4], ebx
mov dword [edx + 0x48], ecx
mov word [edx + 0x3a], 0x103
mov ecx, dword [esp + 0x3c]
movzx edx, word [ecx + 0x74]
mov ebx, dword [esp + 0x20]
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 + 0x30], esi
test edx, edx
je 0x594bab
mov dword [esp + 0x2c], 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 + 0x3c]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
call fcn.00468740
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x2c]
mov ebp, dword [ecx + 0x30]
mov eax, dword [ecx + 0x28]
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x30], ebp
mov edx, dword [0x7a14d8]
test edx, edx
je 0x594bda
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov edx, dword [ebx + 0x28]
mov dword [edi + 4], edx
mov dword [ebx + 0x28], eax
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 + 0x2c], esi
test edx, edx
je 0x594c23
mov dword [esp + 0x28], 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 + 0x3c]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
call fcn.00468740
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x1c]
test edx, edx
je 0x594c80
movzx ebp, byte [ecx + 0xe]
xchg ebp, eax
cmp al, 3
xchg ebp, eax
je 0x594c45
xchg ebp, eax
cmp al, 8
xchg ebp, eax
jne 0x594c80
movzx ebp, word [ecx + 8]
test bp, bp
jne 0x594c80
cmp byte [edx + 8], 7
jne 0x594c5b
movzx edx, word [esp + 0x1e]
jmp 0x594c85
movzx edx, byte [ecx + 0xf]
cmp dl, 1
je 0x594c6e
cmp dl, 2
je 0x594c6e
cmp dl, 5
jne 0x594c79
movzx edx, word [esp + 0x1e]
mov word [ebx + 8], dx
jmp 0x594c85
movzx edx, word [esp + 0x1e]
jmp 0x594c85
movzx edx, word [esp + 0x1e]
mov ebp, dword [ecx + 0x48]
test ebp, ebp
je 0x594cca
movzx esi, byte [ecx + 0x3a]
xchg esi, eax
cmp al, 3
xchg esi, eax
je 0x594c9e
xchg esi, eax
cmp al, 8
xchg esi, eax
jne 0x594cca
movzx esi, word [ecx + 0x34]
test si, si
jne 0x594cca
cmp byte [ebp + 8], 7
je 0x594cca
movzx ebp, byte [ecx + 0x3b]
xchg ebp, eax
cmp al, 1
xchg ebp, eax
je 0x594cc6
xchg ebp, eax
cmp al, 2
xchg ebp, eax
je 0x594cc6
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x594cca
mov word [ebx + 0x34], dx
mov ebp, dword [ecx + 0x28]
mov esi, dword [ecx + 0x2c]
xor eax, eax
jmp 0x594cda
inc eax
movzx edx, word [esp + 0x1e]
cmp eax, esi
jge 0x594cf9
lea edi, [eax + eax*8]
lea edx, [ebp + edi*4 + 0x20]
movzx edx, byte [edx]
test dl, dl
jne 0x594cd4
lea edx, [ebp + edi*4]
mov eax, edx
movzx edx, word [esp + 0x1e]
jmp 0x594cfb
xor eax, eax
test eax, eax
je 0x594d06
xor eax, eax
jmp 0x594d92
nop
mov word [ecx + 0x74], 7
mov byte [ecx + 0x7e], 0
mov edx, dword [0x7a14d8]
test edx, edx
je 0x594d55
mov eax, dword [ecx + 0x28]
call sym.runtime.gcWriteBarrier1
mov dword [edi], eax
lea eax, [0x5da860]
mov dword [esp], eax
mov edx, dword [esp + 0x30]
mov dword [esp + 4], edx
call sym.runtime.wbZero
lea eax, [0x5da860]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
call sym.runtime.wbZero
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
xor eax, eax
call fcn.00468278
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0x30], 0
mov dword [ecx + 0x28], 0
mov word [ecx + 0x76], 0
mov edi, dword [esp + 0x2c]
call fcn.00468278
add esp, 0x34
ret
inc eax
movzx edx, word [esp + 0x1e]
cmp eax, esi
jge 0x594db1
lea edi, [eax + eax*8]
lea edx, [ebp + edi*4 + 0x20]
movzx edx, byte [edx]
test dl, dl
jne 0x594d8c
lea edx, [ebp + edi*4]
mov eax, edx
movzx edx, word [esp + 0x1e]
jmp 0x594db3
xor eax, eax
mov ebp, dword [eax + 0x14]
test ebp, ebp
je 0x594d06
movzx esi, byte [eax + 6]
xchg esi, eax
cmp al, 3
xchg esi, eax
je 0x594dd4
xchg esi, eax
cmp al, 8
xchg esi, eax
jne 0x594d06
movzx esi, word [eax]
test si, si
jne 0x594d06
cmp byte [ebp + 8], 7
je 0x594d06
movzx ebp, byte [eax + 7]
xchg ebp, eax
cmp al, 1
xchg ebp, eax
je 0x594e07
xchg ebp, eax
cmp al, 2
xchg ebp, eax
je 0x594e07
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x594d06
mov ebp, dword [ebx + 0x28]
mov ebx, dword [ebx + 0x2c]
xor eax, eax
jmp 0x594e12
inc eax
cmp eax, ebx
jge 0x594e2c
lea esi, [eax + eax*8]
lea edi, [ebp + esi*4 + 0x20]
movzx edi, byte [edi]
xchg edi, eax
test al, al
xchg edi, eax
jne 0x594e11
lea ebx, [ebp + esi*4]
jmp 0x594e2e
xor ebx, ebx
mov word [ebx], dx
jmp 0x594d06
call sym.runtime.morestack_noctxt
jmp sym.cmd_internal_obj_x86.rewriteToPcrel