Function at 0x57872d
Capabilities:
Create directory

Disassembly:
cmp byte [rcx], 0
jne 0x56c279
mov rcx, rdx
mov rdx, r8
jmp 0x57872d
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x218
mov rsi, r8
mov rdi, rdx
mov qword [rsp + 0x28], rcx
lea rbx, [rsp + 0xa8]
mov rcx, rbx
call fcn.00573bd4
lea rdx, [0x00799ab8]
lea r15, [rsp + 0xe8]
mov rcx, r15
xor r8d, r8d
call fcn.00573bd4
mov r14, qword [rbx + 8]
mov rbx, qword [r15 + 8]
cmp r14, rbx
jne 0x56c32f
mov al, byte [rsp + 0xe0]
cmp al, byte [rsp + 0x120]
jne 0x56c32f
cmp byte [rsp + 0xe1], 2
jne 0x56c32f
cmp byte [rsp + 0x121], 2
jne 0x56c32f
cmp byte [rsp + 0xb8], 3
setb al
cmp byte [rsp + 0xf8], 3
setb cl
xor cl, al
jne 0x56c32f
mov rcx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xe8]
mov rdx, r14
mov r9, r14
call fcn.00401e05
test al, al
jne 0x56c5bb
mov rcx, qword [rsp + 0xa8]
mov al, byte [rsp + 0xb8]
cmp al, 6
je 0x56c369
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x4f], rdx
movups xmm0, xmmword [rsp + 0xb9]
movups xmm1, xmmword [rsp + 0xc9]
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
mov dl, byte [rsp + 0xe2]
movzx r8d, word [rsp + 0xe0]
mov qword [rsp + 0x128], rcx
mov qword [rsp + 0x130], r14
mov byte [rsp + 0x138], al
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [rsp + 0x139], xmm0
movups xmmword [rsp + 0x149], xmm1
mov rax, qword [rsp + 0x4f]
mov qword [rsp + 0x158], rax
mov byte [rsp + 0x162], dl
mov word [rsp + 0x160], r8w
mov rcx, qword [rsp + 0xe8]
mov al, byte [rsp + 0xf8]
cmp al, 6
je 0x56c401
mov rdx, qword [rsp + 0x118]
mov qword [rsp + 0x4f], rdx
movups xmm0, xmmword [rsp + 0xf9]
movups xmm1, xmmword [rsp + 0x109]
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
mov dl, byte [rsp + 0x122]
movzx r8d, word [rsp + 0x120]
lea r14, [rsp + 0x68]
mov r9, qword [r14 - 0x19]
lea r15, [rsp + 0x1d8]
mov qword [r15 + 0x30], r9
movaps xmm0, xmmword [r14 - 0x38]
movaps xmm1, xmmword [r14 - 0x28]
movups xmmword [r15 + 0x21], xmm1
movups xmmword [r15 + 0x11], xmm0
mov qword [r15], rcx
mov qword [r15 + 8], rbx
mov byte [r15 + 0x10], al
mov word [r15 + 0x38], r8w
mov byte [r15 + 0x3a], dl
lea r12, [rsp + 0x168]
lea r13, [rsp + 0x128]
lea rbp, [rsp + 0x1a0]
lea rbx, [rsp + 0x30]
mov rcx, r12
mov rdx, r13
call fcn.005711e0
cmp byte [rsp + 0x168], 0xa
je 0x56c518
mov rcx, rbp
mov rdx, r15
call fcn.005711e0
cmp byte [rsp + 0x1a0], 0xa
je 0x56c536
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rsp + 0x168]
movups xmm1, xmmword [rsp + 0x178]
movups xmm2, xmmword [rsp + 0x188]
movaps xmmword [rsp + 0x50], xmm2
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
mov rax, qword [rsp + 0x1d0]
mov qword [r14 + 0x30], rax
movups xmm0, xmmword [rsp + 0x1a0]
movups xmm1, xmmword [rsp + 0x1b0]
movups xmm2, xmmword [rsp + 0x1c0]
movups xmmword [r14 + 0x20], xmm2
movups xmmword [r14 + 0x10], xmm1
movups xmmword [r14], xmm0
mov rcx, rbx
mov rdx, r14
call fcn.0057157e
test al, al
jne 0x56c46b
jmp 0x56c536
lea rbx, [rsp + 0x30]
lea rdx, [rsp + 0x1d8]
mov rcx, rbx
call fcn.005711e0
cmp byte [rbx], 0xa
je 0x56c5bb
mov rcx, rdi
mov rdx, rsi
call 0x57872d
test rax, rax
je 0x56c5bb
mov r14, rax
lea rbx, [rsp + 0x30]
mov rcx, rbx
mov rdx, rax
call fcn.005754c4
movzx eax, byte [rbx]
lea rcx, [0x006baf90]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x38]
mov al, byte [rax + 0x10]
jmp 0x56c5a0
mov eax, dword [rsp + 0x34]
lea ecx, [rax - 0xf]
cmp ecx, 0x34
ja 0x56c592
movabs rdx, 0x10004000000001
bt rdx, rcx
jb 0x56c5d5
add eax, 0xfffffffe
cmp eax, 2
jb 0x56c5d5
jmp 0x56c5a4
mov al, byte [rsp + 0x31]
test al, al
je 0x56c5d5
mov rcx, rdi
mov rdx, rsi
call fcn.005747ac
test al, al
je 0x56c5be
mov rcx, r14
call fcn.00569e1d
xor r14d, r14d
mov rax, r14
add rsp, 0x218
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r14
call fcn.00569e13
mov rcx, rdi
mov rdx, rsi
call fcn.00574556
test rax, rax
je 0x56c61a
mov r8, rdx
mov rcx, qword [rsp + 0x28]
mov rdx, rax
call 0x56c279
mov r14, rax
test rax, rax
jne 0x56c5be
mov rcx, rdi
mov rdx, rsi
call 0x57872d
test rax, rax
je 0x56c5bb
mov r14, rax
jmp 0x56c5a4
lea r14, str.failed_to_create_whole_tree
jmp 0x56c5be
lea rcx, [0x006bafa0]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rdi, r13
jmp 0x56cb85
jmp 0x56cbd0
lea rcx, [rsp + 0x40]
lea rax, method..1.virtual_0
jmp 0x56cb70
lea rcx, [rsp + 0x48]
lea rax, method..1.virtual_0
and byte [eax], al
and byte [eax], al
call qword [rax + 0x28]
mov rdi, rax
test rax, rax
jne 0x56cb85
jmp case.0x56cb41.0
mov rdi, r12
test r12, r12
je 0x56cbac
mov edx, esi
and dl, 0xf
lea rcx, [rsp + 0x28]
sub al, ch
xor byte [rdi - 0x7ab80000], 0xc0
invalid
sub al, ch
xor byte [rdi - 0x7ab80000], 0xc0
invalid
sal byte [rbp + 0x13], 0x48
add edi, edx
jne 0x56cbac
add rdi, rdx
jmp 0x56cbc3
add r13, 7
and r13, 0xfffffffffffffff8
test sil, 0xf
je 0x56cbb6
mov eax, 3
jmp case.0x56ccfb.0
mov rdi, qword [r13]
add r13, 8
mov qword [rsp + 0x28], r13
test sil, sil
jns 0x56cbcb
mov rdi, qword [rdi]
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x24], ebp
mov qword [rsp + 0x38], r14
mov rax, qword [rsp + 0x28]
mov cl, byte [rax]
inc rax
mov qword [rsp + 0x28], rax
cmp cl, 0xff
je 0x56cbfd
lea rsi, [rsp + 0x28]
mov rcx, rsi
call fcn.00574953
mov rax, qword [rsi]
mov r14b, byte [rax]
inc rax
lea rdi, [rsp + 0x28]
mov qword [rdi], rax
mov rcx, rdi
call fcn.00574953
mov r13, rax
add r13, qword [rdi]
cmp qword [rsp + 0x28], r13
jae 0x56cccc
mov rcx, rdi
mov edx, r14d
call fcn.00578314
test rax, rax
jne 0x56cbac
mov rsi, rdx
mov rcx, rdi
mov edx, r14d
call fcn.00578314
test rax, rax
jne 0x56cbac
mov rbx, rdx
mov rcx, rdi
mov edx, r14d
call fcn.00578314
test rax, rax
jne 0x56cbac
mov rbp, rdx
mov rcx, rdi
call fcn.00574953
lea rcx, [r12 + rsi]
cmp r15, rcx
jb 0x56cccc
add rbx, rsi
add rbx, r12
cmp r15, rbx
jae 0x56cc19
test rbp, rbp
je 0x56cd56
add qword [rsp + 0x30], rbp
test rax, rax
je 0x56cd5a
add rax, r13
dec rax
lea rcx, [rsp + 0x60]
mov qword [rcx], rax
call fcn.0057497e
xor ecx, ecx
test rax, rax
setg cl
xor rcx, 3
test rax, rax
mov edx, 1
cmovne rdx, rcx
jmp 0x56cd5f
mov edx, 4
mov rbx, qword [rsp + 0xd0]
mov r14, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x24]
test bpl, 1
jne 0x56cd34
add dword [rbp + 0x4c], esi
mov eax, 8
add byte [rax], al
lea rcx, [0x006bafb8]
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
add byte [rax], al
and al, 0x30
lea rcx, [0x00773594]
mov eax, dword [rcx + rdx*4]
pop rcx
push 0x48b0020
xchg ecx, eax
xor edx, edx
jmp 0x56cd5f
mov edx, 1
mov rbx, qword [rsp + 0xd0]
mov r14, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x24]
jmp 0x56cce2
add rsp, 0x38
cmp byte [rdi + 0x5e], bl
push rdi
push rbp
push rbx
sub rsp, 0x68
add byte [rax], al
add byte [rcx + rdx*2 + 0x48], dh
mov esi, dword [rsp + 0x28]
add dword [rdi], eax
ret
cmp byte [rsi], ch
jne case.0x57635f.11
cmp byte [r8 + 1], 0x2e
jne case.0x57635f.11
mov byte [rcx], 8
ret
jo case.0x56cb41.21
mov eax, dword [rcx + 0x10]
ror dword [rax + 1], 1
ror byte [rax - 0x7d], 1
rol byte [rdx], 0xc3
invalid
pop rdx
add dword [rcx - 0x80], eax
cmp dl, 4
cmovae r11, rax
call fcn.00576659
push rax
lea eax, [rsp + 0x30]
jno 0x57542f
dec dword [rax - 0x75]
jns 0x575433
dec dword [rax - 0x75]
pop rcx
adc byte [rax - 0x77], cl
stc
add byte [rax], al
mov qword [rsp + 0x20], rdx
mov r9, qword [rdx + 0x18]
mov rdx, rax
jmp r9
or r14b, r8b
or dword [r8], r8d
test byte [0xffffffff81576252], bl
stc
add al, byte [rcx]
add byte [rax], al
add byte [rax], al
cmp ecx, 0x102
je case.0x575f3d.28
cmp ecx, 0x10b
je 0x57638b
test byte [rbx], ah
add dword [rax], eax
add byte [rax], al
push rdx
jrcxz 0x576287
add byte [rax], al
add byte [rdi], cl
stosb byte [rdi], al
add byte [rax], al
invalid
add byte [rcx + 0x46bf9], al
loope case.0x5704f6.38
push rsi
mov al, 0xe
ret
dec dword [rax - 0x75]
and al, 0x30
mov qword [rsi + 8], rax
and qword [rsi], 0
jmp 0x5773da
add rsp, 0x38
pop rdi
pop rsi
ret
mov rdx, rcx
mov r8, qword [rsi]
add r8, rbx
lea rdi, [rsp + 0x20]
mov rcx, rdi
call case.0x57635f.76
cmp qword [rdi], 0
invalid
invalid
je 0x577577
mov rsi, qword [rsp + 0x28]
mov rcx, rsi
call fcn.005774df
cmp al, 0xb
jne 0x577591
invalid
mov rcx, rsi
add rbx, qword [rsp + 0x28]
mov qword [rsi + 0x10], rbx
mov rax, qword [rsi + 0x18]
cmp rax, rbx
cmova rbx, rax
mov qword [rsi + 0x18], rbx
lea rcx, [0x00774580]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
add eax, ecx
mov rdx, rbx
call fcn.0047be5f
test al, 1
jne 0x57820c
shr eax, 0x10
lea rdx, [rsp + 0x48]
adc byte [rax - 0x73], cl
push rsp
and al, 0x48
mov qword [rdx], rdi
mov dword [rdx], edi
mov qword [rdx + 8], r14
adc byte [rax - 0x73], cl
jl 0x57821a
sub byte [rax - 0x77], cl
invalid
lea rax, str.invalid_port_value
and al, 0x38
push rsi
push rdi
push rbx
sub rsp, 0x40
mov r8, rdx
mov rdx, rcx
lea rsi, [rsp + 0x28]
mov rcx, rsi
call fcn.00574c18
mov rsi, qword [rsi]
test rsi, rsi
je 0x578771
mov rdi, qword [rsp + 0x30]
mov rcx, rsi
xor edx, edx
call sub.kernel32.dll_CreateDirectoryW
test eax, eax
je 0x578778
mov rcx, rsi
mov rdx, rdi
call fcn.0057667d
xor eax, eax
jmp 0x57878e
mov rax, qword [rsp + 0x30]
jmp 0x57878e
call fcn.00569a3f
mov rbx, rax
mov rcx, rsi
mov rdx, rdi
call fcn.0057667d
mov rax, rbx
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
loopne 0x579c04
mov ecx, r10d
or rcx, r8
mov edx, r9d
movabs r8, 0x69746e6568747541
xor r8, rcx
or rdx, r8
and byte [rax - 0x75], cl
sub byte [rax - 0x75], cl
sbb byte [rax - 0x73], cl
lea rdx, [0x0077526c]
and byte [rax - 0x75], cl
invalid
add byte [rax], al
add byte [rax - 0x75], cl
and byte [rax - 0x75], cl
sub byte [rax - 0x75], cl
sub byte [rax - 0x75], cl
add byte [rax], al
jae case.0x56cb41.159
mov ecx, dword [rdx + 0x20]
imul esi, dword [rdx + 0x5eeb001f], 0x48
mov ecx, dword [rdx + 0x20]
invalid
invalid
add byte [rcx - 0x48], al
or al, byte [rax]
add byte [rax], al
jmp rax
mov edx, eax
mov eax, dword [rcx + rax*8]
sbb byte [rax - 0x73], cl
add byte [rax], al
mov byte [rcx + rax - 0x3f], cl
movsb byte [rdi], byte [rsi]
and al, 0x28
add dword [rax - 0x73], ecx
and al, 0x68
and al, 0x68
loop 0x57a49a
lea ecx, str.Expected_unsigned_integer_
mov dword [rax], ecx
add eax, 0x1fa659
add byte [rcx - 0x39], cl
or byte [rcx], al
add byte [rax], al
add byte [rax - 0x73], cl
add eax, 0x21f3fa
cli
and dword [rax], eax
lea ecx, [0x0057a726]
mov dword [rax + 8], ecx
sub byte [rax - 0x77], cl
or byte [rax - 0x73], cl
mov dword [rax + 0x10], eax
sub byte [rax - 0x77], cl
ret 0xe9
invalid
invalid
add eax, ecx
mov dword [rcx + 8], ecx
add byte [rax], al
add byte [rcx - 0x7d], cl
add byte [rbp + rcx*4 + 0x44], cl
and al, 0x50
add byte [rax], al
and byte [rax], al
invalid
and byte [rax - 0x73], cl
adc eax, 0x1fa976
pop rbx
test eax, 0x1eeb001f
add byte [rax], al
fbld tbyte [rcx]
push rax
lea edi, [rsp + 0x38]
ror byte [rcx - 0x3f], 1
or byte [r8 - 0x73], cl
add eax, 0x1fa31b
invalid
invalid
invalid
invalid
and al, 0x38
or byte [rsi + 0x39], ah
retf 0x5377
invalid
ja 0x57b4a0
movzx ecx, word [r8 + r9 + 8]
mov bh, 0x4c
or byte [rax], cl
invalid
mov al, 6
cmp dx, cx
add esp, 0x20
adc byte [rdi], cl
adc dword [rsi], eax
cmp qword [rcx + 0x20], 0
invalid
or byte [rsi + 0xf], ah
pmovmskb ecx, mm0
mov ecx, edi
xchg bh, bh