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

Disassembly:
push rbp
push r13
lea rbp, [rsp - 0x16f8]
mov eax, 0x17f8
call fcn.14002ef70
sub rsp, rax
mov rdx, qword [rcx + 0xa8]
mov r13, rcx
cmp dword [rdx + 8], 3
jne 0x14007b76d
cmp qword [rcx + 0x5b50], 0x40
jb 0x14007b76d
mov qword [rsp + 0x1818], rbx
lea rax, [0x1401b6698]
mov qword [rsp + 0x1820], rsi
lea rbx, [rdx + 0x29c]
mov qword [rsp + 0x1828], rdi
lea rsi, [rbp + 0x4b8]
mov qword [rbp + 0x4a0], rax
lea rdi, [rbp - 0x78]
lea rax, [rbp + 0x98]
mov qword [rsp + 0x17f0], r12
mov qword [rbp + 0x88], rax
mov ecx, reloc.WS2_32.dll_recv
lea rax, [0x1401b7168]
mov qword [rsp + 0x17e8], r14
xor r14d, r14d
mov qword [rbp + 0x80], rax
xor eax, eax
mov qword [rsp + 0x17e0], r15
mov qword [rbp + 0x4a8], rsi
mov dword [rbp + 0x4b0], r14d
mov dword [rbp + 0x4b4], 0x104
mov word [rbp + 0x4b8], r14w
mov dword [rbp + 0x90], r14d
mov dword [rbp + 0x94], 0x200
mov word [rbp + 0x98], 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
test rbx, rbx
jne 0x14007ae8f
mov edi, r14d
mov dword [rbp + 0x4b0], r14d
jmp 0x14007aece
mov edx, 0x104
mov rcx, rbx
call fcn.14003c464
mov rdi, rax
mov eax, dword [rbp + 0x4b4]
cmp edi, eax
jb 0x14007aeac
lea edi, [rax - 1]
mov rcx, qword [rbp + 0x4a8]
mov rdx, rbx
mov r8d, edi
add r8, r8
call fcn.14014cbf0
mov rsi, qword [rbp + 0x4a8]
mov dword [rbp + 0x4b0], edi
mov eax, edi
mov word [rsi + rax*2], r14w
mov rcx, qword [rbp + 0x4a8]
test rcx, rcx
je 0x14007aef5
mov edx, dword [rbp + 0x4b0]
inc edx
call fcn.1400418c0
mov rcx, qword [rbp + 0x4a8]
mov r8d, dword [rbp + 0x4b0]
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.1400713a0
movzx r8d, byte [rbp - 0x28]
test r8b, r8b
jne 0x14007b16d
mov edx, dword [rbp - 0x80]
lea rdi, [rbp + 0x1710]
lea rsi, [rbp - 0x80]
mov ecx, 2
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
mov eax, 0x78
shr ecx, 3
mov r14d, 0x38
and ecx, 0x3f
sub eax, ecx
sub r14d, ecx
cmp ecx, 0x38
cmovae r14d, eax
cmp r14d, 1
jb 0x14007b062
lea eax, [r14*8]
add edx, eax
mov dword [rbp - 0x80], edx
cmp edx, eax
mov edx, dword [rbp - 0x7c]
jae 0x14007af96
inc edx
mov eax, r14d
lea r15, [0x1401f1e70]
shr eax, 0x1d
mov ebx, 0x40
add edx, eax
sub ebx, ecx
mov dword [rbp - 0x7c], edx
cmp r14d, ebx
jb 0x14007b01e
mov eax, ecx
lea r8, [rbp - 0x78]
add r8, rax
mov ecx, ebx
shr rcx, 2
mov rdi, r8
mov rsi, r15
mov edx, ebx
rep movsd dword [rdi], dword [rsi]
mov ecx, ebx
and ecx, 3
je 0x14007afe2
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r15]
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x70]
call fcn.140070710
lea eax, [rbx + 0x3f]
cmp eax, r14d
jae 0x14007b01a
nop dword [rax + rax]
mov edx, ebx
lea rcx, [rsp + 0x70]
add rdx, r15
call fcn.140070710
add ebx, 0x40
lea eax, [rbx + 0x3f]
cmp eax, r14d
jb 0x14007b000
xor ecx, ecx
jmp 0x14007b020
xor ebx, ebx
mov eax, ecx
lea r9, [rbp - 0x78]
sub r14d, ebx
mov r8d, ebx
add r8, r15
mov ecx, r14d
shr rcx, 2
add r9, rax
mov rdi, r9
mov edx, r14d
mov rsi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, r14d
and ecx, 3
je 0x14007b05a
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
mov edx, dword [rbp - 0x80]
movzx r8d, byte [rbp - 0x28]
test r8b, r8b
jne 0x14007b146
mov ecx, edx
add edx, 0x40
shr ecx, 3
and ecx, 0x3f
mov dword [rbp - 0x80], edx
cmp edx, 0x40
jae 0x14007b081
inc dword [rbp - 0x7c]
mov ebx, 0x40
sub ebx, ecx
cmp ebx, 8
ja 0x14007b105
mov eax, ecx
lea r8, [rbp - 0x78]
add r8, rax
mov ecx, ebx
shr rcx, 2
lea rsi, [rbp + 0x1710]
mov rdi, r8
mov edx, ebx
rep movsd dword [rdi], dword [rsi]
mov ecx, ebx
and ecx, 3
je 0x14007b0c5
and rdx, 0xfffffffffffffffc
lea rsi, [rbp + 0x1710]
add rsi, rdx
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x70]
call fcn.140070710
lea eax, [rbx + 0x3f]
cmp eax, 8
jae 0x14007b101
nop dword [rax + rax]
mov eax, ebx
lea rdx, [rbp + 0x1710]
add rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140070710
add ebx, 0x40
lea eax, [rbx + 0x3f]
cmp eax, 8
jb 0x14007b0e0
xor ecx, ecx
jmp 0x14007b107
xor ebx, ebx
mov edx, 8
mov eax, ebx
sub edx, ebx
lea r8, [rbp + 0x1710]
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 0x14007b146
and rdx, 0xfffffffffffffffc
lea rsi, [r8 + rdx]
lea rdi, [r9 + rdx]
rep movsb byte [rdi], byte [rsi]
xor eax, eax
lea rdi, [rbp - 0x38]
lea rsi, [rsp + 0x70]
mov ecx, 4
rep movsd dword [rdi], dword [rsi]
lea rdi, [rbp - 0x78]
mov ecx, reloc.WS2_32.dll_recv
mov r8b, 1
xor r14d, r14d
rep stosd dword [rdi], eax
mov byte [rbp - 0x28], r8b
mov r15, qword [rbp + 0x4a8]
mov rsi, 0xffffffffffffffff
mov r12d, dword [rbp + 0x4b4]
test r15, r15
je 0x14007b1dc
test r8b, r8b
je 0x14007b1d8
cmp r12d, 0x21
jb 0x14007b1d8
mov ebx, r14d
lea r14, [rbp - 0x38]
nop dword [rax]
movzx edi, byte [r14]
lea ecx, [rbx + rbx]
mov edx, r12d
mov dword [rsp + 0x20], edi
sub edx, ecx
lea r9, str._02X
lea rcx, [r15 + rcx*2]
mov r8, rsi
call fcn.140003a90
inc ebx
lea r14, [r14 + 1]
cmp ebx, 0x10
jb 0x14007b1a0
xor r14d, r14d
mov word [r15 + 0x40], r14w
jmp 0x14007b1dc
mov word [r15], r14w
mov rax, qword [rbp + 0x88]
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 + 0x88]
test rcx, rcx
je 0x14007b220
mov edx, dword [rbp + 0x94]
call fcn.14003c464
mov rcx, qword [rbp + 0x88]
mov dword [rbp + 0x90], eax
jmp 0x14007b227
mov dword [rbp + 0x90], r14d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rcx, qword [rbp + 0x88]
test rcx, rcx
je 0x14007b292
mov edx, dword [rbp + 0x90]
lea eax, [rdx + 0xb]
cmp eax, dword [rbp + 0x94]
jae 0x14007b292
movups xmm0, xmmword [0x1401b9de0]
lea rcx, [rcx + rdx*2]
movups xmmword [rcx], xmm0
mov eax, dword [0x1401b9df0]
mov dword [rcx + 0x10], eax
movzx eax, word [reloc.WS2_32.dll_WSAStartup]
mov word [rcx + 0x14], ax
mov eax, dword [rbp + 0x90]
add eax, 0xb
mov ecx, eax
mov dword [rbp + 0x90], eax
mov rax, qword [rbp + 0x88]
mov word [rax + rcx*2], r14w
mov rcx, qword [rbp + 0x88]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rcx, qword [rbp + 0x88]
test rcx, rcx
je 0x14007b2f2
mov edx, dword [rbp + 0x90]
lea eax, [rdx + 0xa]
cmp eax, dword [rbp + 0x94]
jae 0x14007b2f2
movups xmm0, xmmword [str.Terminal_]
lea rcx, [rcx + rdx*2]
movups xmmword [rcx], xmm0
mov eax, dword [0x1401c52a0]
mov dword [rcx + 0x10], eax
mov eax, dword [rbp + 0x90]
add eax, 0xa
mov ecx, eax
mov dword [rbp + 0x90], eax
mov rax, qword [rbp + 0x88]
mov word [rax + rcx*2], r14w
mov rcx, qword [rbp + 0x88]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rcx, qword [rbp + 0x88]
test rcx, rcx
je 0x14007b363
mov rdx, qword [rbp + 0x4a8]
test rdx, rdx
je 0x14007b363
inc rsi
cmp word [rdx + rsi*2], 0
jne 0x14007b312
test esi, esi
je 0x14007b363
mov edi, dword [rbp + 0x90]
lea eax, [rdi + rsi]
cmp eax, dword [rbp + 0x94]
jae 0x14007b363
mov r8d, esi
lea rcx, [rcx + rdi*2]
add r8, r8
call fcn.14014cbf0
mov eax, dword [rbp + 0x90]
add eax, esi
mov ecx, eax
mov dword [rbp + 0x90], eax
mov rax, qword [rbp + 0x88]
mov word [rax + rcx*2], r14w
mov rcx, qword [rbp + 0x88]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rcx, qword [rbp + 0x88]
test rcx, rcx
je 0x14007b3d0
mov edx, dword [rbp + 0x90]
lea eax, [rdx + 7]
cmp eax, dword [rbp + 0x94]
jae 0x14007b3d0
movsd xmm0, qword [0x1401c52a8]
lea rcx, [rcx + rdx*2]
movsd qword [rcx], xmm0
mov eax, dword [0x1401c52b0]
mov dword [rcx + 8], eax
movzx eax, word [0x1401c52b4]
mov word [rcx + 0xc], ax
mov eax, dword [rbp + 0x90]
add eax, 7
mov ecx, eax
mov dword [rbp + 0x90], eax
mov rax, qword [rbp + 0x88]
mov word [rax + rcx*2], r14w
mov rcx, qword [rbp + 0x88]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rdx, qword [rbp + 0x88]
test rdx, rdx
je 0x14007b43b
mov ecx, dword [rbp + 0x90]
lea eax, [rcx + 0xb]
cmp eax, dword [rbp + 0x94]
jae 0x14007b43b
movups xmm0, xmmword [str._server.ini]
lea rcx, [rdx + rcx*2]
movups xmmword [rcx], xmm0
mov eax, dword [0x1401c52c8]
mov dword [rcx + 0x10], eax
movzx eax, word [0x1401c52cc]
mov word [rcx + 0x14], ax
mov eax, dword [rbp + 0x90]
add eax, 0xb
mov dword [rbp + 0x90], eax
mov ecx, eax
mov rax, qword [rbp + 0x88]
mov word [rax + rcx*2], r14w
mov rdx, qword [rbp + 0x88]
lea rbx, [r13 + 0x5b48]
mov rcx, rbx
call fcn.1400041e0
test al, al
je 0x14007b67a
mov r9, qword [rbp + 0x88]
lea r8, str._s_server_config
lea rdx, str.Install
lea rcx, [0x1402284e0]
call fcn.140091190
mov r8, qword [r13 + 0xa8]
lea rdx, str._sconfig_servers.dat
add r8, 0x29c
lea rcx, [rbp + 0x80]
call fcn.140003670
mov rcx, qword [rbp + 0x88]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rcx, [0x140214a00]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rdi, qword [0x140219d00]
lea r14, [0x14021a0b0]
lea r15, [0x140219fb0]
lea r12, [0x140214c7a]
test rdi, rdi
je 0x14007b518
nop
lea rdx, str.iyloqwtlhudpchauyanaixixvuikefveer
mov rcx, rdi
call fcn.14003e590
test eax, eax
jne 0x14007b50c
cmp dword [rdi + 0x8b0], 1
jb 0x14007b502
mov rax, qword [rdi + 0x8a8]
test rax, rax
je 0x14007b502
cmp word [rax], 0
je 0x14007b502
xor al, al
jmp 0x14007b504
mov al, 1
test al, al
je 0x14007b591
mov rdi, qword [rdi + 0x18f8]
test rdi, rdi
jne 0x14007b4d0
lea rcx, [0x140214a00]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor r13d, r13d
mov qword [rsp + 0x60], r13
lea rax, str.Account_Request_Finish
mov qword [rsp + 0x58], r13
lea r9, [0x140214c2a]
mov qword [rsp + 0x50], r13
lea r8, [0x140214b2a]
mov qword [rsp + 0x48], r14
lea rcx, [0x140214a00]
mov qword [rsp + 0x40], r15
mov edx, 1
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r12
call fcn.140058730
mov qword [rsp + 0x60], r13
lea rdi, str.Account_Request_Success
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], r13
jmp 0x14007b6a8
lea rdx, [rdi + 0x8a0]
lea rcx, [rbp + 0x6c0]
call fcn.140002a30
xor r13d, r13d
mov dword [rbp - 0xc], 0x40
mov dword [rbp - 0x10], r13d
lea rax, [0x1401b6738]
mov qword [rbp - 0x20], rax
lea rcx, [rbp - 8]
mov qword [rbp - 0x18], rcx
mov word [rbp - 8], r13w
test rdi, rdi
jne 0x14007b5d8
mov esi, r13d
mov dword [rbp - 0x10], r13d
jmp 0x14007b60b
mov edx, 0x40
mov rcx, rdi
call fcn.14003c464
mov rsi, rax
mov eax, dword [rbp - 0xc]
cmp esi, eax
jb 0x14007b5f2
lea esi, [rax - 1]
mov rcx, qword [rbp - 0x18]
mov rdx, rdi
mov r8d, esi
add r8, r8
call fcn.14014cbf0
mov rcx, qword [rbp - 0x18]
mov dword [rbp - 0x10], esi
mov eax, esi
mov word [rcx + rax*2], r13w
lea rax, [0x1401b6660]
lea rcx, [0x140214a00]
mov qword [rbp - 0x20], rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rbp + 0x6c8]
lea r8, [0x140214b2a]
mov r9, qword [rbp - 0x18]
lea rcx, [0x140214a00]
mov qword [rsp + 0x60], r13
mov edx, 8
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r12
call fcn.140058730
jmp 0x14007b528
mov qword [rsp + 0x60], r14
lea r15, [0x140219fb0]
mov qword [rsp + 0x58], r14
lea rdi, str.Account_Request_Error
mov qword [rsp + 0x50], r14
lea r12, [0x140214c7a]
lea r14, [0x14021a0b0]
xor r13d, r13d
mov qword [rsp + 0x48], r14
lea r9, [0x140214c2a]
mov qword [rsp + 0x40], r15
lea r8, [0x140214b2a]
mov qword [rsp + 0x38], rdi
lea rcx, [0x140214a00]
mov qword [rsp + 0x28], r13
mov edx, 1
mov qword [rsp + 0x20], r12
call fcn.140058730
xor r9d, r9d
lea rcx, [0x140214a00]
mov r8, rdi
xor edx, edx
call fcn.1400592a0
mov rsi, qword [rbx]
mov r15, qword [rsp + 0x17e0]
mov r14, qword [rsp + 0x17e8]
mov r12, qword [rsp + 0x17f0]
test rsi, rsi
je 0x14007b738
mov rdx, qword [rbx + 0x10]
xor eax, eax
mov rcx, rdx
mov rdi, rsi
shr rcx, 2
rep stosd dword [rdi], eax
mov rcx, rdx
and ecx, 3
je 0x14007b738
and rdx, 0xfffffffffffffffc
lea rdi, [rsi + rdx]
rep stosb byte [rdi], al
mov rsi, qword [rsp + 0x1820]
lea rdi, [rbp - 0x38]
xor eax, eax
mov qword [rbx + 8], r13
mov rbx, qword [rsp + 0x1818]
mov ecx, 4
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x70]
mov ecx, 4
rep stosd dword [rdi], eax
mov rdi, qword [rsp + 0x1828]
add rsp, 0x17f8
pop r13
pop rbp
ret