Function at 0x4784f0
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4be1c0
mov eax, dword fs:[0]
push eax
sub esp, 0x150
push ebx
push esi
push edi
mov eax, dword [0x4fa008]
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.0047a380
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.0x478553.67108607
movzx eax, byte [eax + 0x478ad8]
jmp dword [eax*4 + 0x478aa4]
push str.compression_support_requested
push 0x4cbe74
push dword [esi + 0xc8]
call fcn.004056b0
add esp, 0xc
push str.supported
push str.sending_compression_support_reply:__s
push dword [esi + 0xc8]
call fcn.00405740
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 0x4785dd
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 0x4785c0
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 0x47860d
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 0x4785f0
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.0x478553.67108607
mov ecx, esi
call fcn.00478ba0
jmp case.0x478553.67108607
lea ecx, [ebp - 0x3c]
call fcn.004967d0
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 3
mov ecx, dword [esi + 4]
push eax
call fcn.0044fda0
push dword [ebp - 0x38]
push str.mkdir___s__command_requested
push dword [esi + 0xc8]
call fcn.004056b0
add esp, 0xc
mov ecx, esi
call fcn.0047a2b0
cmp byte [ebp - 0x2c], 0
jne 0x4789db
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
call fcn.0044b300
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.0044b560
test al, al
jne 0x4789f6
push 0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x478a17
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.0044ffd0
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.00403b90
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x3c], vtable.StringStorage.0
call fcn.00403b90
jmp case.0x478553.67108607
lea ecx, [ebp - 0x3c]
call fcn.004967d0
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 7
mov ecx, dword [esi + 4]
push eax
call fcn.0044fda0
push dword [ebp - 0x38]
push str.rm___s__command_requested
push dword [esi + 0xc8]
call fcn.004056b0
add esp, 0xc
mov ecx, esi
call fcn.0047a2b0
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
call fcn.0044b300
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.0044b560
test al, al
je 0x478a33
lea ecx, [ebp - 0x20]
call fcn.0044b480
test al, al
je 0x478a4f
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.0044ffd0
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xa
jmp 0x4786dd
lea ecx, [ebp - 0x54]
call fcn.004967d0
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xb
call fcn.004967d0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0xc
mov ecx, dword [esi + 4]
push eax
call fcn.0044fda0
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x68]
push eax
call fcn.0044fda0
push dword [ebp - 0x64]
push dword [ebp - 0x50]
push str.move___s____s__command_requested
push dword [esi + 0xc8]
call fcn.004056b0
add esp, 0x10
mov ecx, esi
call fcn.0047a2b0
push dword [ebp - 0x50]
lea ecx, [ebp - 0x38]
call fcn.0044b300
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
push dword [ebp - 0x64]
call fcn.0044b300
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x38]
call fcn.0044bb80
test al, al
je 0x478a6b
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.0044ffd0
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.00403b90
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x38], vtable.StringStorage.0
call fcn.00403b90
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x68], vtable.StringStorage.0
call fcn.00403b90
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x54], vtable.StringStorage.0
call fcn.00403b90
jmp case.0x478553.67108607
lea ecx, [ebp - 0x54]
call fcn.004967d0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0x11
mov ecx, dword [esi + 4]
push eax
call fcn.0044fda0
push dword [ebp - 0x50]
push str.Size_of_folder__s_requested
push dword [esi + 0xc8]
call fcn.004056b0
add esp, 0xc
mov ecx, esi
call fcn.0047a2b0
lea eax, [ebp - 0x18]
xorps xmm0, xmm0
push eax
push dword [ebp - 0x50]
mov ecx, esi
movlpd qword [ebp - 0x18], xmm0
call fcn.0047a0f0
test al, al
je 0x478a87
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.0044ffd0
push dword [ebp - 0x14]
mov ecx, dword [esi + 8]
push dword [ebp - 0x18]
call fcn.00450020
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.00403b90
jmp case.0x478553.67108607
mov ecx, esi
call fcn.004794b0
jmp case.0x478553.67108607
mov ecx, esi
call fcn.004796d0
jmp case.0x478553.67108607
mov ecx, esi
call fcn.004799b0
jmp case.0x478553.67108607
mov ecx, esi
call fcn.00479b30
jmp case.0x478553.67108607
mov ecx, esi
call fcn.00479cc0
jmp case.0x478553.67108607
mov ecx, esi
call fcn.00479150
jmp case.0x478553.67108607
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [esi + 0xc0]
mov dword [esi + 4], 0
call fcn.0047a660
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.00496770
push 0x4f7ca8
lea eax, [ebp - 0x80]
push eax
call fcn.00498838
push str.Directory_already_exists
lea ecx, [ebp - 0x94]
call fcn.00496770
push 0x4f7ca8
lea eax, [ebp - 0x94]
push eax
call fcn.00498838
lea ecx, [ebp - 0xbc]
call fcn.0041be20
push 0x4f7a3c
lea eax, [ebp - 0xbc]
push eax
call fcn.00498838
lea ecx, [ebp - 0xe4]
call fcn.0041be20
push 0x4f7a3c
lea eax, [ebp - 0xe4]
push eax
call fcn.00498838
lea ecx, [ebp - 0x10c]
call fcn.0041be20
push 0x4f7a3c
lea eax, [ebp - 0x10c]
push eax
call fcn.00498838
lea ecx, [ebp - 0x134]
call fcn.0041be20
push 0x4f7a3c
lea eax, [ebp - 0x134]
push eax
call fcn.00498838
lea ecx, [ebp - 0x15c]
call fcn.0041be20
push 0x4f7a3c
lea eax, [ebp - 0x15c]
push eax
call fcn.00498838
nop
pop edx
test dword [edi], eax
xchg byte es:[edi], al
mov cs, word [ecx - 1990131641]
inc edi
add byte [edx - 0x77], ch
inc edi
add byte [ebx - 0x77], dh
inc edi
add byte [ecx + ecx*4 + 0x47], bh
add byte [ebp + 0x32004789], al
xchg byte [edi], al
pop es
xchg dword [edi], eax
stosb byte es:[edi], al
xchg dword [edi], eax
scasb al, byte es:[edi]
mov byte [edi], al
scasb al, byte es:[edi]
mov dword [edi], eax
add byte [ecx + eax], cl
or al, 2
or al, 3
or al, 4
or al, 5
or al, 6
or al, 7
or al, 12
or byte [ecx + ecx], cl
or al, 10
or al, 11