Function at 0x478380
Capabilities:
Delete file
Execute command
Query environment variable

Disassembly:
push ebp
mov eax, 0x104c
push edi
push esi
push ebx
call fcn.004f11c8
sub esp, eax
mov dword [0x503578], 0xffffffff
call fcn.004a2d30
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp], str.Connecting_to_metaserver_for_server_list....
call fcn.0040eb00
call fcn.004075b0
call fcn.004781c0
mov esi, eax
test al, al
je 0x478440
mov dword [esp + 8], 0x13940
mov ebx, 0xa
mov dword [esp + 4], 0
mov dword [esp], 0x114f4a0
call sub.msvcrt.dll_memset
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.00402960
mov eax, dword [0x503578]
mov dword [esp], eax
call fcn.00402b60
test eax, eax
jne 0x4784d8
sub ebx, 1
jne 0x4783ec
mov eax, dword [0x503578]
mov dword [esp], eax
call fcn.00402c00
mov dword [0x503578], 0xffffffff
mov dword [0x114f490], 0
lea esi, [esi]
nop
call fcn.00409190
mov dword [esp + 8], 1
mov dword [esp + 4], 3
mov dword [esp], str.Enter_the_server_name_you_want_to_connect_to__ESCAPE_to_quit_:
call fcn.0040eb00
mov dword [esp + 4], 1
mov dword [esp], 5
call fcn.0040c6b0
mov dword [esp + 8], 0
mov ecx, 0x75
mov dword [esp + 4], 0x4f
mov dword [esp], 0x114eec0
mov dword [0x114eec0], 0x6f727565
mov dword [0x114eec4], 0x742e6570
mov dword [0x114eec8], 0x6e656d6f
mov dword [0x114eecc], 0x652e7465
mov word [0x114eed0], cx
call fcn.0040f0c0
mov esi, eax
add esp, 0x104c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x503578]
mov dword [esp + 8], 0x13940
mov dword [esp + 4], 0x114f4a0
mov dword [esp], eax
call fcn.00403c80
mov ebx, eax
mov eax, dword [0x503578]
mov dword [esp], eax
call fcn.00402c00
mov dword [0x503578], 0xffffffff
mov dword [0x114f490], 0
test ebx, ebx
jle 0x478440
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
test eax, eax
je 0x478598
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
test eax, eax
je 0x478598
mov dword [esp], 0x51ec41
lea ebx, [esp + 0x40]
call sub.msvcrt.dll_getenv
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
mov dword [eax], 0x705f5f5c
mov dword [eax + 4], 0x2e676e69
mov dword [eax + 8], 0x706d74
jmp 0x4785bd
mov eax, dword [0xde84ac]
lea ebx, [esp + 0x40]
mov dword [esp + 0xc], str.__ping.tmp
mov dword [esp + 4], 0x400
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00404e10
mov dword [esp + 4], ebx
mov dword [esp], str.ping_______s_2_1
mov byte [0xd616c0], 0
call fcn.00402550
mov dword [esp], eax
call sub.msvcrt.dll_system
mov dword [esp + 4], 0x51ecb2
mov dword [esp], ebx
mov dword [esp + 0x38], eax
call fcn.00445e10
mov edi, eax
test eax, eax
je 0x478be0
mov dword [0xd621d0], 0xffffffff
lea ebp, [esp + 0x440]
mov dword [esp + 8], 0x400
mov dword [esp + 4], ebp
mov dword [esp], edi
call fcn.00445ec0
test eax, eax
jne 0x478641
mov dword [esp + 4], str.ping___
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
test eax, eax
je 0x47860b
mov dword [0xd621d0], 0
mov dword [esp], edi
call fcn.00445e70
mov dword [esp], ebx
call sub.msvcrt.dll_remove
cmp dword [0xd621d0], 0xffffffff
je 0x478dd2
call fcn.00409190
mov dword [esp + 0x14], 0x114f490
mov dword [esp + 0x10], 0x114f4a0
mov dword [esp + 0xc], 0x51eb18
mov dword [esp + 8], 0x51eb1a
mov dword [esp + 4], str.meta_display
mov dword [esp], 0
call fcn.004a3430
call fcn.004075b0
mov eax, dword [0xd621d0]
test eax, eax
je 0x4787f8
mov edx, dword [0x54b7c4]
mov eax, dword [edx + 0x40]
mov ecx, dword [edx + 0x24]
mov byte [0xd616b2], 1
mov edi, dword [sym.imp.msvcrt.dll_islower]
jmp 0x4786fb
cmp al, 0x1b
je 0x478a40
movsx ebx, al
mov dword [esp], ebx
call edi
test eax, eax
je 0x4786ef
mov eax, ebx
sub eax, 0x61
js 0x4786ef
cmp dword [0x114f490], eax
jg 0x478bef
mov edx, dword [0x54b7c4]
mov eax, dword [edx + 0x40]
mov ecx, dword [edx + 0x24]
mov dword [eax + 4], ecx
mov byte [eax], 1
call fcn.0040dac0
mov byte [0xd616b2], 0
mov edx, eax
and edx, 0xffffffbf
cmp dl, 0x11
jne 0x4786c8
mov ebp, dword [0xd621d0]
mov edi, 0xd61ae0
xor esi, esi
lea ebx, [esp + 0xc40]
test ebp, ebp
jg 0x47879e
jmp 0x478990
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 4], edi
mov dword [esp], 0x51ed06
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], ebx
add esi, 1
add edi, 0x50
call sub.msvcrt.dll_remove
cmp dword [0xd621d0], esi
jle 0x478990
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
test eax, eax
je 0x4787c2
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
test eax, eax
jne 0x478738
mov dword [esp + 4], edi
mov dword [esp], str.__ping__s.tmp
call fcn.00402550
mov dword [esp + 4], 0x400
mov dword [esp + 0xc], eax
mov eax, dword [0xde84ac]
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.00404e10
jmp 0x478784
mov eax, dword [0x114f490]
xor ebp, ebp
test eax, eax
jle 0x478952
mov eax, esi
xor edx, edx
mov byte [esp + 0x2f], al
jmp 0x478827
add edx, 1
cmp dword [0x114f490], edx
jle 0x47894d
lea eax, [esp + 0x3c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x34]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x114f4a0
mov dword [esp + 0xc], 0x51ece0
mov dword [esp + 8], str._s_d_
mov dword [esp + 4], str.meta_get
mov dword [esp], 0
mov dword [esp + 0x20], edx
call fcn.004a3430
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
cmp byte [edi], 0
je 0x478818
lea eax, [ebp + 1]
mov dword [esp + 0x20], eax
lea eax, [ebp + ebp*4]
shl eax, 4
add eax, 0xd61ae0
mov dword [esp + 0x28], eax
test ebp, ebp
jle 0x478f05
mov dword [esp + 0x24], edx
mov esi, 0xd61ae0
xor ebx, ebx
jmp 0x4788b6
add ebx, 1
add esi, 0x50
cmp ebx, ebp
je 0x478978
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x4788a8
cmp ebx, ebp
mov eax, 0xffffffff
mov edx, dword [esp + 0x24]
cmove ebx, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0xfffffffe
mov dword [esp + 0xc], 0x51eb18
mov dword [esp + 8], str._d_d_
mov dword [esp + 4], str.meta_add_ping
mov dword [esp], 0
mov dword [esp + 0x24], edx
mov dword [ebp*4 + 0xd62180], ebx
call fcn.004a3430
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
cmp dword [esp + 0x20], 0x14
mov edx, dword [esp + 0x24]
je 0x478ef6
mov ebp, dword [esp + 0x20]
add edx, 1
cmp dword [0x114f490], edx
jg 0x478827
movzx esi, byte [esp + 0x2f]
call fcn.004075b0
mov ecx, dword [0x54b7c4]
mov eax, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x24]
mov byte [eax], 1
mov dword [eax + 4], ecx
mov dword [0xd621d0], ebp
jmp 0x4786b5
mov edx, dword [esp + 0x24]
mov ebx, 0xffffffff
jmp 0x4788d4
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
test eax, eax
je 0x478a00
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
test eax, eax
je 0x478a00
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
mov dword [eax], 0x705f5f5c
mov dword [eax + 4], 0x2e676e69
mov dword [eax + 8], 0x706d74
jmp 0x478a21
mov eax, dword [0xde84ac]
mov dword [esp + 0xc], str.__ping.tmp
mov dword [esp + 4], 0x400
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00404e10
mov dword [esp], ebx
call sub.msvcrt.dll_remove
mov dword [0xd621d0], 0
jmp 0x478440
mov edx, dword [0xd621d0]
mov edi, 0xd61ae0
xor esi, esi
lea ebx, [esp + 0xc40]
test edx, edx
jg 0x478ac2
jmp 0x478b18
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 4], edi
mov dword [esp], 0x51ed06
call fcn.00402550
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], ebx
add esi, 1
add edi, 0x50
call sub.msvcrt.dll_remove
cmp dword [0xd621d0], esi
jle 0x478b18
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
test eax, eax
je 0x478ae6
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
test eax, eax
jne 0x478a60
mov dword [esp + 4], edi
mov dword [esp], str.__ping__s.tmp
call fcn.00402550
mov dword [esp + 4], 0x400
mov dword [esp + 0xc], eax
mov eax, dword [0xde84ac]
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.00404e10
jmp 0x478aac
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
test eax, eax
je 0x478b88
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
test eax, eax
je 0x478b88
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, ebx
mov dword [eax], 0x705f5f5c
mov dword [eax + 4], 0x2e676e69
mov dword [eax + 8], 0x706d74
jmp 0x478ba9
mov eax, dword [0xde84ac]
mov dword [esp + 0xc], str.__ping.tmp
mov dword [esp + 4], 0x400
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00404e10
mov dword [esp], ebx
xor esi, esi
call sub.msvcrt.dll_remove
mov dword [esp], 0
mov dword [0xd621d0], 0
call fcn.00401670
add esp, 0x104c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0xd621d0], 0xffffffff
jmp 0x47865e
mov ebx, eax
mov eax, dword [0xd621d0]
mov ebp, 0xd61ae0
xor edi, edi
test eax, eax
jg 0x478c82
jmp 0x478cd9
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
mov dword [esp], 0x114ef80
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
mov dword [esp], 0x114ef80
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp + 4], ebp
mov dword [esp], 0x51ed06
call fcn.00402550
mov dword [esp], 0x114ef80
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], 0x114ef80
add edi, 1
add ebp, 0x50
call sub.msvcrt.dll_remove
cmp dword [0xd621d0], edi
jle 0x478cd9
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
test eax, eax
je 0x478ca6
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
test eax, eax
jne 0x478c10
mov dword [esp + 4], ebp
mov dword [esp], str.__ping__s.tmp
call fcn.00402550
mov dword [esp + 4], 0x400
mov dword [esp + 0xc], eax
mov eax, dword [0xde84ac]
mov dword [esp], 0x114ef80
mov dword [esp + 8], eax
call fcn.00404e10
jmp 0x478c68
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
test eax, eax
je 0x478ecc
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
test eax, eax
je 0x478ecc
mov dword [esp], 0x51ec41
call sub.msvcrt.dll_getenv
mov dword [esp], 0x114ef80
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], 0x51ec8c
call sub.msvcrt.dll_getenv
mov dword [esp], 0x114ef80
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcat
mov dword [esp], 0x114ef80
call sub.msvcrt.dll_strlen
mov dword [eax + 0x114ef80], 0x705f5f5c
mov dword [eax + 0x114ef84], 0x2e676e69
mov dword [eax + 0x114ef88], 0x706d74
mov dword [esp], 0x114ef80
call sub.msvcrt.dll_remove
lea eax, [esp + 0x34]
mov dword [esp + 0x1c], 0x114eeb0
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0x114f4a0
mov dword [esp + 0xc], 0x51ece0
mov dword [esp + 8], str._s_d_
mov dword [esp + 4], str.meta_get
mov dword [esp], 0
mov dword [0xd621d0], 0
call fcn.004a3430
mov eax, dword [esp + 0x34]
mov dword [esp], 0x114eec0
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
jmp 0x4784c7
mov dword [esp], str.SYSTEMROOT
lea edi, [esp + 0x840]
call sub.msvcrt.dll_getenv
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov edx, 0x32
add eax, edi
mov word [eax + 8], dx
mov dword [eax], 0x7379735c
mov dword [eax + 4], 0x336d6574
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], str._sping_______s_2_1
call fcn.00402550
mov dword [esp], eax
call sub.msvcrt.dll_system
mov dword [esp + 4], 0x51ecb2
mov dword [esp], ebx
mov dword [esp + 0x38], eax
call fcn.00445e10
test eax, eax
je 0x478be0
mov dword [0xd621d0], 0xffffffff
mov dword [esp + 0x20], ebx
mov ebx, eax
mov dword [esp + 8], 0x400
mov dword [esp + 4], ebp
mov dword [esp], ebx
call fcn.00445ec0
test eax, eax
jne 0x478f74
mov dword [esp + 4], str.ping___
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
test eax, eax
je 0x478e59
mov dword [esp + 8], edi
mov dword [esp + 4], 0x51ecdc
mov dword [esp], 0xd616c0
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x20]
mov dword [0xd621d0], 0
call fcn.004720b0
mov edx, dword [esp + 0x24]
mov dword [esp], edx
call fcn.00445e70
mov dword [esp], ebx
call sub.msvcrt.dll_remove
jmp 0x47865e
mov eax, dword [0xde84ac]
mov dword [esp + 0xc], str.__ping.tmp
mov dword [esp + 4], 0x400
mov dword [esp + 8], eax
mov dword [esp], 0x114ef80
call fcn.00404e10
jmp 0x478d63
movzx esi, byte [esp + 0x2f]
mov ebp, 0x14
jmp 0x478952
mov ebx, 0xffffffff
je 0x4788d4
lea eax, [esp + 0x38]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0xfffffffe
mov dword [esp + 0xc], 0x51eb18
mov dword [esp + 8], str._d_d_
mov dword [esp + 4], str.meta_add_ping
mov dword [esp], 0
mov dword [esp + 0x24], edx
mov dword [ebp*4 + 0xd62180], 0
call fcn.004a3430
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov edx, dword [esp + 0x24]
jmp 0x47893a
mov edx, ebx
mov ebx, dword [esp + 0x20]
jmp 0x478eb7