Function at 0x47c332
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c25c0
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.0047e080
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.0x47c253.67108607
movzx eax, byte [eax + 0x47c7d8]
jmp dword [eax*4 + 0x47c7a4]
push str.compression_support_requested
push 0x525ae0
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 0x47c2dd
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 0x47c2c0
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 0x47c30d
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 0x47c2f0
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.0x47c253.67108607
mov ecx, esi
call fcn.0047c8a0
jmp case.0x47c253.67108607
lea ecx, [ebp - 0x3c]
call fcn.0049a4b0
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 3
mov ecx, dword [esi + 4]
push eax
call fcn.00453870
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.0047dfb0
cmp byte [ebp - 0x2c], 0
jne 0x47c6db
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
call fcn.0044c5a0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.0044c800
test al, al
jne 0x47c6f6
push 0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x47c717
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.00453aa0
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.0x47c253.67108607
lea ecx, [ebp - 0x3c]
call fcn.0049a4b0
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 7
mov ecx, dword [esi + 4]
push eax
call fcn.00453870
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.0047dfb0
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
call fcn.0044c5a0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.0044c800
test al, al
je 0x47c733
lea ecx, [ebp - 0x20]
call fcn.0044c720
test al, al
je 0x47c74f
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.00453aa0
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xa
jmp 0x47c3dd
lea ecx, [ebp - 0x54]
call fcn.0049a4b0
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xb
call fcn.0049a4b0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0xc
mov ecx, dword [esi + 4]
push eax
call fcn.00453870
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x68]
push eax
call fcn.00453870
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.0047dfb0
push dword [ebp - 0x50]
lea ecx, [ebp - 0x38]
call fcn.0044c5a0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
push dword [ebp - 0x64]
call fcn.0044c5a0
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x38]
call fcn.0044ce20
test al, al
je 0x47c76b
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.00453aa0
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.0x47c253.67108607
lea ecx, [ebp - 0x54]
call fcn.0049a4b0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0x11
mov ecx, dword [esi + 4]
push eax
call fcn.00453870
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.0047dfb0
lea eax, [ebp - 0x18]
xorps xmm0, xmm0
push eax
push dword [ebp - 0x50]
mov ecx, esi
movlpd qword [ebp - 0x18], xmm0
call fcn.0047ddf0
test al, al
je 0x47c787
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.00453aa0
push dword [ebp - 0x14]
mov ecx, dword [esi + 8]
push dword [ebp - 0x18]
call fcn.00453af0
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.0x47c253.67108607
mov ecx, esi
call fcn.0047d1b0
jmp case.0x47c253.67108607
mov ecx, esi
call fcn.0047d3d0
jmp case.0x47c253.67108607
mov ecx, esi
call fcn.0047d6b0
jmp case.0x47c253.67108607
mov ecx, esi
call fcn.0047d830
jmp case.0x47c253.67108607
mov ecx, esi
call fcn.0047d9c0
jmp case.0x47c253.67108607
mov ecx, esi
call fcn.0047ce50
jmp case.0x47c253.67108607
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [esi + 0xc0]
mov dword [esi + 4], 0
call fcn.0047e360
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.0049a450
push 0x5523d0
lea eax, [ebp - 0x80]
push eax
call fcn.0049c518
push str.Directory_already_exists
lea ecx, [ebp - 0x94]
call fcn.0049a450
push 0x5523d0
lea eax, [ebp - 0x94]
push eax
call fcn.0049c518
lea ecx, [ebp - 0xbc]
call fcn.0041ce10
push 0x552164
lea eax, [ebp - 0xbc]
push eax
call fcn.0049c518
lea ecx, [ebp - 0xe4]
call fcn.0041ce10
push 0x552164
lea eax, [ebp - 0xe4]
push eax
call fcn.0049c518
lea ecx, [ebp - 0x10c]
call fcn.0041ce10
push 0x552164
lea eax, [ebp - 0x10c]
push eax
call fcn.0049c518
lea ecx, [ebp - 0x134]
call fcn.0041ce10
push 0x552164
lea eax, [ebp - 0x134]
push eax
call fcn.0049c518
lea ecx, [ebp - 0x15c]
call fcn.0041ce10
push 0x552164
lea eax, [ebp - 0x15c]
push eax
call fcn.0049c518
nop
pop edx
ret 71