Function at 0x47cae2
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c2cc0
mov eax, dword fs:[0]
push eax
sub esp, 0x150
push ebx
push esi
push edi
mov eax, dword [0x554008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x40], esi
mov ecx, dword [esi + 0xc0]
call fcn.0047e830
mov eax, dword [ebp + 0xc]
mov dword [esi + 4], eax
mov eax, dword [ebp + 8]
add eax, 0x3ffff00
mov dword [ebp - 4], 0
cmp eax, 0x17
ja case.0x47ca03.67108607
movzx eax, byte [eax + 0x47cf88]
jmp dword [eax*4 + 0x47cf54]
push str.compression_support_requested
push 0x526af0
push dword [esi + 0xc8]
call fcn.00405e90
add esp, 0xc
push str.supported
push str.sending_compression_support_reply:__s
push dword [esi + 0xc8]
call fcn.00405f20
mov ecx, dword [esi + 8]
add esp, 0xc
mov dword [ebp - 0x28], vtable.AutoLock.0
lea eax, [ecx + 8]
neg ecx
sbb ecx, ecx
and ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [ecx]
call dword [eax + 4]
xor edi, edi
mov byte [ebp - 4], 1
mov eax, dword [esi + 8]
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], 0x10100fc
lea ebx, [edi + 4]
nop
cmp edi, 4
jae 0x47ca8d
mov ecx, dword [eax + 4]
lea eax, [ebp + 0xc]
push ebx
add eax, edi
push eax
mov edx, dword [ecx]
call dword [edx + 4]
sub ebx, eax
add edi, eax
mov eax, dword [ebp + 8]
jmp 0x47ca70
mov eax, dword [esi + 8]
xor edi, edi
mov byte [ebp + 0xc], 1
mov dword [ebp + 8], eax
lea ebx, [edi + 1]
nop dword [eax]
cmp edi, 1
jae 0x47cabd
mov ecx, dword [eax + 4]
lea eax, [ebp + 0xc]
push ebx
add eax, edi
push eax
mov edx, dword [ecx]
call dword [edx + 4]
sub ebx, eax
add edi, eax
mov eax, dword [ebp + 8]
jmp 0x47caa0
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
call dword [eax + 8]
jmp case.0x47ca03.67108607
mov ecx, esi
call fcn.0047d050
jmp case.0x47ca03.67108607
lea ecx, [ebp - 0x3c]
call fcn.0049ac00
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 3
mov ecx, dword [esi + 4]
push eax
call fcn.004535b0
push dword [ebp - 0x38]
push str.mkdir___s__command_requested
push dword [esi + 0xc8]
call fcn.00405e90
add esp, 0xc
mov ecx, esi
call fcn.0047e760
cmp byte [ebp - 0x2c], 0
jne 0x47ce8b
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
call fcn.0044c2e0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.0044c540
test al, al
jne 0x47cea6
push 0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x47cec7
mov edi, dword [esi + 8]
mov dword [ebp - 0x28], vtable.AutoLock.0
lea eax, [edi + 8]
neg edi
sbb edi, edi
and edi, eax
mov ecx, edi
mov dword [ebp - 0x24], edi
mov eax, dword [edi]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov ecx, dword [esi + 8]
push 0xfc000112
call fcn.004537e0
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 6
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x20], vtable.StringStorage.0
call fcn.004039c0
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x3c], vtable.StringStorage.0
call fcn.004039c0
jmp case.0x47ca03.67108607
lea ecx, [ebp - 0x3c]
call fcn.0049ac00
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 7
mov ecx, dword [esi + 4]
push eax
call fcn.004535b0
push dword [ebp - 0x38]
push str.rm___s__command_requested
push dword [esi + 0xc8]
call fcn.00405e90
add esp, 0xc
mov ecx, esi
call fcn.0047e760
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
call fcn.0044c2e0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.0044c540
test al, al
je 0x47cee3
lea ecx, [ebp - 0x20]
call fcn.0044c460
test al, al
je 0x47ceff
mov edi, dword [esi + 8]
mov dword [ebp - 0x28], vtable.AutoLock.0
lea eax, [edi + 8]
neg edi
sbb edi, edi
and edi, eax
mov ecx, edi
mov dword [ebp - 0x24], edi
mov eax, dword [edi]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov ecx, dword [esi + 8]
push 0xfc000114
call fcn.004537e0
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xa
jmp 0x47cb8d
lea ecx, [ebp - 0x54]
call fcn.0049ac00
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xb
call fcn.0049ac00
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0xc
mov ecx, dword [esi + 4]
push eax
call fcn.004535b0
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x68]
push eax
call fcn.004535b0
push dword [ebp - 0x64]
push dword [ebp - 0x50]
push str.move___s____s__command_requested
push dword [esi + 0xc8]
call fcn.00405e90
add esp, 0x10
mov ecx, esi
call fcn.0047e760
push dword [ebp - 0x50]
lea ecx, [ebp - 0x38]
call fcn.0044c2e0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
push dword [ebp - 0x64]
call fcn.0044c2e0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x38]
call fcn.0044cb60
test al, al
je 0x47cf1b
mov edi, dword [esi + 8]
mov dword [ebp - 0x28], vtable.AutoLock.0
lea eax, [edi + 8]
neg edi
sbb edi, edi
and edi, eax
mov ecx, edi
mov dword [ebp - 0x24], edi
mov eax, dword [edi]
call dword [eax + 4]
mov byte [ebp - 4], 0xf
mov ecx, dword [esi + 8]
push 0xfc000116
call fcn.004537e0
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0x10
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 8]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x20], vtable.StringStorage.0
call fcn.004039c0
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x38], vtable.StringStorage.0
call fcn.004039c0
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x68], vtable.StringStorage.0
call fcn.004039c0
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x54], vtable.StringStorage.0
call fcn.004039c0
jmp case.0x47ca03.67108607
lea ecx, [ebp - 0x54]
call fcn.0049ac00
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0x11
mov ecx, dword [esi + 4]
push eax
call fcn.004535b0
push dword [ebp - 0x50]
push str.Size_of_folder__s_requested
push dword [esi + 0xc8]
call fcn.00405e90
add esp, 0xc
mov ecx, esi
call fcn.0047e760
lea eax, [ebp - 0x18]
xorps xmm0, xmm0
push eax
push dword [ebp - 0x50]
mov ecx, esi
movlpd qword [ebp - 0x18], xmm0
call fcn.0047e5a0
test al, al
je 0x47cf37
mov edi, dword [esi + 8]
mov dword [ebp - 0x28], vtable.AutoLock.0
lea eax, [edi + 8]
neg edi
sbb edi, edi
and edi, eax
mov ecx, edi
mov dword [ebp - 0x24], edi
mov eax, dword [edi]
call dword [eax + 4]
mov byte [ebp - 4], 0x12
mov ecx, dword [esi + 8]
push 0xfc000118
call fcn.004537e0
push dword [ebp - 0x14]
mov ecx, dword [esi + 8]
push dword [ebp - 0x18]
call fcn.00453830
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0x13
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 8]
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x54], vtable.StringStorage.0
call fcn.004039c0
jmp case.0x47ca03.67108607
mov ecx, esi
call fcn.0047d960
jmp case.0x47ca03.67108607
mov ecx, esi
call fcn.0047db80
jmp case.0x47ca03.67108607
mov ecx, esi
call fcn.0047de60
jmp case.0x47ca03.67108607
mov ecx, esi
call fcn.0047dfe0
jmp case.0x47ca03.67108607
mov ecx, esi
call fcn.0047e170
jmp case.0x47ca03.67108607
mov ecx, esi
call fcn.0047d600
jmp case.0x47ca03.67108607
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [esi + 0xc0]
mov dword [esi + 4], 0
call fcn.0047eac0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.Cannot_create_folder_in_root_folder
lea ecx, [ebp - 0x80]
call fcn.0049aba0
push 0x551dd8
lea eax, [ebp - 0x80]
push eax
call fcn.0049cc58
push str.Directory_already_exists
lea ecx, [ebp - 0x94]
call fcn.0049aba0
push 0x551dd8
lea eax, [ebp - 0x94]
push eax
call fcn.0049cc58
lea ecx, [ebp - 0xbc]
call fcn.0041cf20
push 0x551b6c
lea eax, [ebp - 0xbc]
push eax
call fcn.0049cc58
lea ecx, [ebp - 0xe4]
call fcn.0041cf20
push 0x551b6c
lea eax, [ebp - 0xe4]
push eax
call fcn.0049cc58
lea ecx, [ebp - 0x10c]
call fcn.0041cf20
push 0x551b6c
lea eax, [ebp - 0x10c]
push eax
call fcn.0049cc58
lea ecx, [ebp - 0x134]
call fcn.0041cf20
push 0x551b6c
lea eax, [ebp - 0x134]
push eax
call fcn.0049cc58
lea ecx, [ebp - 0x15c]
call fcn.0041cf20
push 0x551b6c
lea eax, [ebp - 0x15c]
push eax
call fcn.0049cc58
nop
or cl, dl
inc edi
add dh, dl
retf 0x47