Function at 0x14007c5c0
Capabilities:
Create directory
Delete file
Get common file path
Hash data with md5

Disassembly:
mov rax, rsp
push rbp
push rbx
push r13
lea rbp, [rax - 0x648]
sub rsp, 0x730
mov rbx, qword [rcx + 0xa8]
mov r13, rcx
cmp dword [rbx + 8], 3
jne 0x14007ce45
cmp qword [rcx + 0x5bd0], 0x40
jb 0x14007ce45
mov qword [rax + 0x10], rsi
mov ecx, reloc.WS2_32.dll_recv
mov qword [rax + 0x18], rdi
lea rsi, [rbp + 0x418]
mov qword [rax + 0x20], r12
lea rdi, [rbp - 0x78]
mov qword [rax - 0x20], r14
xor r14d, r14d
mov qword [rax - 0x28], r15
lea rax, [0x1401b7690]
mov qword [rbp + 0x400], rax
lea rax, [rbp - 8]
mov qword [rbp - 0x18], rax
lea rax, [0x1401b8178]
mov qword [rbp - 0x20], rax
xor eax, eax
mov qword [rbp + 0x408], rsi
mov dword [rbp + 0x410], r14d
mov dword [rbp + 0x414], 0x104
mov word [rbp + 0x418], r14w
mov dword [rbp - 0x10], r14d
mov dword [rbp - 0xc], 0x200
mov word [rbp - 8], r14w
rep stosd dword [rdi], eax
lea rdi, [rbp - 0x38]
mov ecx, 4
rep stosd dword [rdi], eax
mov byte [rbp - 0x28], al
mov qword [rbp - 0x80], r14
mov dword [rsp + 0x70], 0x67452301
mov dword [rsp + 0x74], 0xefcdab89
mov dword [rsp + 0x78], 0x98badcfe
mov dword [rsp + 0x7c], 0x10325476
add rbx, 0x29c
jne 0x14007c6b3
mov edx, r14d
jmp 0x14007c707
mov edx, 0x104
mov rcx, rbx
call fcn.14003c814
mov rdx, rax
mov eax, dword [rbp + 0x414]
cmp edx, eax
jb 0x14007c6d0
lea edx, [rax - 1]
mov rax, qword [rbp + 0x408]
lea r8d, [rdx + rdx]
mov ecx, r8d
mov rdi, rax
shr rcx, 2
mov rsi, rbx
rep movsd dword [rdi], dword [rsi]
mov ecx, r8d
and ecx, 3
je 0x14007c700
and r8, 0xfffffffffffffffc
lea rsi, [r8 + rbx]
lea rdi, [r8 + rax]
rep movsb byte [rdi], byte [rsi]
mov rsi, qword [rbp + 0x408]
mov eax, edx
mov dword [rbp + 0x410], edx
mov word [rsi + rax*2], r14w
mov rcx, qword [rbp + 0x408]
test rcx, rcx
je 0x14007c734
mov edx, dword [rbp + 0x410]
inc edx
call fcn.140041c70
mov rcx, qword [rbp + 0x408]
mov r8d, dword [rbp + 0x410]
mov rdx, rcx
add r8d, r8d
mov byte [rbp - 0x28], r14b
lea rcx, [rsp + 0x70]
mov qword [rbp - 0x80], r14
mov dword [rsp + 0x70], 0x67452301
mov dword [rsp + 0x74], 0xefcdab89
mov dword [rsp + 0x78], 0x98badcfe
mov dword [rsp + 0x7c], 0x10325476
call fcn.140072a10
movzx r8d, byte [rbp - 0x28]
test r8b, r8b
jne 0x14007c9bc
mov edx, dword [rbp - 0x80]
lea rdi, [rbp + 0x650]
lea rsi, [rbp - 0x80]
mov ecx, 2
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
mov eax, 0x78
shr ecx, 3
mov r15d, 0x38
and ecx, 0x3f
mov ebx, 0x40
sub eax, ecx
sub r15d, ecx
cmp ecx, 0x38
cmovae r15d, eax
cmp r15d, 1
jb 0x14007c8b6
lea eax, [r15*8]
add edx, eax
mov dword [rbp - 0x80], edx
cmp edx, eax
mov edx, dword [rbp - 0x7c]
jae 0x14007c7da
inc edx
mov eax, r15d
lea r12, [0x1401f2e70]
shr eax, 0x1d
mov r14d, ebx
add edx, eax
sub r14d, ecx
mov dword [rbp - 0x7c], edx
cmp r15d, r14d
jb 0x14007c864
mov eax, ecx
lea r8, [rbp - 0x78]
add r8, rax
mov ecx, r14d
shr rcx, 2
mov rdi, r8
mov rsi, r12
mov edx, r14d
rep movsd dword [rdi], dword [rsi]
mov ecx, r14d
and ecx, 3
je 0x14007c828
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r12]
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x70]
call fcn.140071d80
lea eax, [r14 + 0x3f]
cmp eax, r15d
jae 0x14007c85c
nop
mov edx, r14d
lea rcx, [rsp + 0x70]
add rdx, r12
call fcn.140071d80
add r14d, ebx
lea eax, [r14 + 0x3f]
cmp eax, r15d
jb 0x14007c840
xor r12d, r12d
mov ecx, r12d
jmp 0x14007c86a
xor r12d, r12d
mov r14d, r12d
sub r15d, r14d
mov r8d, r14d
lea rax, [0x1401f2e70]
mov edx, r15d
add r8, rax
lea r9, [rbp - 0x78]
mov eax, ecx
mov rsi, r8
add r9, rax
mov ecx, r15d
shr rcx, 2
mov rdi, r9
rep movsd dword [rdi], dword [rsi]
mov ecx, r15d
and ecx, 3
je 0x14007c8ab
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
mov edx, dword [rbp - 0x80]
xor r14d, r14d
movzx r8d, byte [rbp - 0x28]
test r8b, r8b
jne 0x14007c998
mov ecx, edx
add edx, ebx
shr ecx, 3
and ecx, 0x3f
mov dword [rbp - 0x80], edx
cmp edx, ebx
jae 0x14007c8d3
inc dword [rbp - 0x7c]
sub ebx, ecx
cmp ebx, 8
ja 0x14007c956
mov eax, ecx
lea r8, [rbp - 0x78]
add r8, rax
mov ecx, ebx
shr rcx, 2
lea rsi, [rbp + 0x650]
mov rdi, r8
mov edx, ebx
rep movsd dword [rdi], dword [rsi]
mov ecx, ebx
and ecx, 3
je 0x14007c912
and rdx, 0xfffffffffffffffc
lea rsi, [rbp + 0x650]
add rsi, rdx
lea rdi, [r8 + rdx]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x70]
call fcn.140071d80
lea eax, [rbx + 0x3f]
cmp eax, 8
jae 0x14007c951
nop dword [rax + rax]
mov eax, ebx
lea rdx, [rbp + 0x650]
add rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140071d80
add ebx, 0x40
lea eax, [rbx + 0x3f]
cmp eax, 8
jb 0x14007c930
mov ecx, r14d
jmp 0x14007c959
mov ebx, r14d
mov edx, 8
mov eax, ebx
sub edx, ebx
lea r8, [rbp + 0x650]
add r8, rax
lea r9, [rbp - 0x78]
mov eax, ecx
mov rsi, r8
add r9, rax
mov ecx, edx
shr rcx, 2
mov rdi, r9
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
and ecx, 3
je 0x14007c998
and rdx, 0xfffffffffffffffc
lea rsi, [r8 + rdx]
lea rdi, [r9 + rdx]
rep movsb byte [rdi], byte [rsi]
lea rdi, [rbp - 0x38]
mov ecx, 4
lea rsi, [rsp + 0x70]
xor eax, eax
rep movsd dword [rdi], dword [rsi]
lea rdi, [rbp - 0x78]
mov ecx, reloc.WS2_32.dll_recv
mov r8b, 1
rep stosd dword [rdi], eax
mov byte [rbp - 0x28], r8b
mov r15, qword [rbp + 0x408]
mov rbx, 0xffffffffffffffff
mov r12d, dword [rbp + 0x414]
test r15, r15
je 0x14007ca2c
test r8b, r8b
je 0x14007ca28
cmp r12d, 0x21
jb 0x14007ca28
mov esi, r14d
lea r14, [rbp - 0x38]
nop dword [rax + rax]
movzx edi, byte [r14]
lea ecx, [rsi + rsi]
mov edx, r12d
mov dword [rsp + 0x20], edi
sub edx, ecx
lea r9, str._02X
lea rcx, [r15 + rcx*2]
mov r8, rbx
call fcn.140003dd0
inc esi
lea r14, [r14 + 1]
cmp esi, 0x10
jb 0x14007c9f0
xor r14d, r14d
mov word [r15 + 0x40], r14w
jmp 0x14007ca2c
mov word [r15], r14w
mov rax, qword [rbp - 0x18]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor ecx, ecx
lea edx, [r9 + 0x1a]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rcx, qword [rbp - 0x18]
mov r15, qword [rsp + 0x720]
test rcx, rcx
je 0x14007ca69
mov edx, dword [rbp - 0xc]
call fcn.14003c814
mov rcx, qword [rbp - 0x18]
mov dword [rbp - 0x10], eax
jmp 0x14007ca6d
mov dword [rbp - 0x10], r14d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x14007cac8
mov edx, dword [rbp - 0x10]
lea eax, [rdx + 0xb]
cmp eax, dword [rbp - 0xc]
jae 0x14007cac8
lea rdx, [rcx + rdx*2]
mov ecx, 5
mov rdi, rdx
lea rsi, [0x1401bad40]
rep movsd dword [rdi], dword [rsi]
lea rdi, [rdx + 0x14]
mov ecx, 2
lea rsi, [0x1401bad54]
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rbp - 0x10]
add eax, 0xb
mov ecx, eax
mov dword [rbp - 0x10], eax
mov rax, qword [rbp - 0x18]
mov word [rax + rcx*2], r14w
mov rcx, qword [rbp - 0x18]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x14007cb0e
mov edx, dword [rbp - 0x10]
lea eax, [rdx + 0xa]
cmp eax, dword [rbp - 0xc]
jae 0x14007cb0e
lea rdi, [rcx + rdx*2]
mov ecx, 5
lea rsi, str.Terminal_
rep movsd dword [rdi], dword [rsi]
mov eax, dword [rbp - 0x10]
add eax, 0xa
mov ecx, eax
mov dword [rbp - 0x10], eax
mov rax, qword [rbp - 0x18]
mov word [rax + rcx*2], r14w
mov rcx, qword [rbp - 0x18]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp + 0x408]
test rcx, rcx
je 0x14007cb8d
test rdx, rdx
je 0x14007cb8d
nop dword [rax + rax]
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x14007cb30
test ebx, ebx
je 0x14007cb8d
mov edi, dword [rbp - 0x10]
lea eax, [rdi + rbx]
cmp eax, dword [rbp - 0xc]
jae 0x14007cb8d
lea r9, [rcx + rdi*2]
mov rsi, rdx
lea eax, [rbx + rbx]
mov rdi, r9
mov ecx, eax
shr rcx, 2
rep movsd dword [rdi], dword [rsi]
mov ecx, eax
mov r8d, eax
and ecx, 3
je 0x14007cb76
and r8, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [r9 + r8]
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rbp - 0x10]
add eax, ebx
mov ecx, eax
mov dword [rbp - 0x10], eax
mov rax, qword [rbp - 0x18]
mov word [rax + rcx*2], r14w
mov rcx, qword [rbp - 0x18]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x14007cbe8
mov edx, dword [rbp - 0x10]
lea eax, [rdx + 7]
cmp eax, dword [rbp - 0xc]
jae 0x14007cbe8
lea rdx, [rcx + rdx*2]
mov ecx, 3
mov rdi, rdx
lea rsi, [0x1401c63f8]
rep movsd dword [rdi], dword [rsi]
lea rdi, [rdx + 0xc]
mov ecx, 2
lea rsi, [0x1401c6404]
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rbp - 0x10]
add eax, 7
mov ecx, eax
mov dword [rbp - 0x10], eax
mov rax, qword [rbp - 0x18]
mov word [rax + rcx*2], r14w
mov rcx, qword [rbp - 0x18]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rdx, qword [rbp - 0x18]
test rdx, rdx
je 0x14007cc43
mov edi, dword [rbp - 0x10]
lea eax, [rdi + 0xb]
cmp eax, dword [rbp - 0xc]
jae 0x14007cc43
lea rdx, [rdx + rdi*2]
mov ecx, 5
mov rdi, rdx
lea rsi, str._server.ini
rep movsd dword [rdi], dword [rsi]
lea rdi, [rdx + 0x14]
mov ecx, 2
lea rsi, [0x1401c641c]
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rbp - 0x10]
add eax, 0xb
mov dword [rbp - 0x10], eax
mov ecx, eax
mov rax, qword [rbp - 0x18]
mov word [rax + rcx*2], r14w
mov rdx, qword [rbp - 0x18]
lea rcx, [r13 + 0x5bc8]
call fcn.140004520
test al, al
je 0x14007cd58
mov r9, qword [rbp - 0x18]
lea r8, str._s_server_config
lea rdx, str.Install
lea rcx, [0x140229810]
call fcn.140092000
mov r8, qword [r13 + 0xa8]
lea rdx, str._sconfig_servers.dat
add r8, 0x29c
lea rcx, [rbp - 0x20]
call fcn.1400038c0
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
call fcn.140058f10
mov qword [rsp + 0x60], r14
lea rax, str.Account_Request_Finish
mov qword [rsp + 0x58], r14
lea rdi, [0x14021b140]
mov qword [rsp + 0x50], r14
lea rbx, [0x14021b040]
mov qword [rsp + 0x48], rdi
lea r9, [0x140215c3a]
mov qword [rsp + 0x40], rbx
lea r8, [0x140215b3a]
mov qword [rsp + 0x38], rax
lea rcx, [0x140215a10]
mov qword [rsp + 0x28], r14
mov edx, 1
lea r14, [0x140215c8a]
mov qword [rsp + 0x20], r14
call fcn.140058af0
xor r12d, r12d
lea r9, [0x140215c3a]
mov qword [rsp + 0x60], r12
lea r8, [0x140215b3a]
mov qword [rsp + 0x58], r12
lea rcx, [0x140215a10]
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], rdi
lea edx, [r12 + 1]
mov qword [rsp + 0x40], rbx
lea rdi, str.Account_Request_Success
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r14
call fcn.140058af0
jmp 0x14007cdbe
mov qword [rsp + 0x60], r14
lea rdi, [0x14021b140]
mov qword [rsp + 0x58], r14
lea rbx, [0x14021b040]
mov qword [rsp + 0x50], r14
lea r9, [0x140215c3a]
mov qword [rsp + 0x48], rdi
lea r8, [0x140215b3a]
mov qword [rsp + 0x40], rbx
lea rdi, str.Account_Request_Error
mov qword [rsp + 0x38], rdi
lea rcx, [0x140215a10]
mov qword [rsp + 0x28], r14
mov edx, 1
lea r14, [0x140215c8a]
mov qword [rsp + 0x20], r14
call fcn.140058af0
xor r12d, r12d
xor r9d, r9d
lea rcx, [0x140215a10]
mov r8, rdi
xor edx, edx
call fcn.1400597b0
mov r8, qword [r13 + 0x5bc8]
mov r14, qword [rsp + 0x728]
test r8, r8
je 0x14007ce0d
mov rdx, qword [r13 + 0x5bd8]
xor eax, eax
mov rcx, rdx
mov rdi, r8
shr rcx, 2
rep stosd dword [rdi], eax
mov rcx, rdx
and ecx, 3
je 0x14007ce0d
and rdx, 0xfffffffffffffffc
lea rdi, [r8 + rdx]
rep stosb byte [rdi], al
mov rsi, qword [rsp + 0x758]
lea rdi, [rbp - 0x38]
xor eax, eax
mov qword [r13 + 0x5bd0], r12
mov r12, qword [rsp + 0x768]
mov ecx, 4
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x70]
mov ecx, 4
rep stosd dword [rdi], eax
mov rdi, qword [rsp + 0x760]
add rsp, 0x730
pop r13
pop rbx
pop rbp
ret