Function at 0x479030
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4becb0
mov eax, dword fs:[0]
push eax
sub esp, 0x150
push ebx
push esi
push edi
mov eax, dword [0x4fb008]
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.0047aec0
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.0x479093.67108607
movzx eax, byte [eax + 0x479618]
jmp dword [eax*4 + 0x4795e4]
push str.compression_support_requested
push 0x4cce74
push dword [esi + 0xc8]
call fcn.00406360
add esp, 0xc
push str.supported
push str.sending_compression_support_reply:__s
push dword [esi + 0xc8]
call fcn.004063f0
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 0x47911d
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 0x479100
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 0x47914d
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 0x479130
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.0x479093.67108607
mov ecx, esi
call fcn.004796e0
jmp case.0x479093.67108607
lea ecx, [ebp - 0x3c]
call fcn.00497310
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 3
mov ecx, dword [esi + 4]
push eax
call fcn.004508d0
push dword [ebp - 0x38]
push str.mkdir___s__command_requested
push dword [esi + 0xc8]
call fcn.00406360
add esp, 0xc
mov ecx, esi
call fcn.0047adf0
cmp byte [ebp - 0x2c], 0
jne 0x47951b
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
call fcn.0044be20
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.0044c080
test al, al
jne 0x479536
push 0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x479557
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.00450b00
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.00404840
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x3c], vtable.StringStorage.0
call fcn.00404840
jmp case.0x479093.67108607
lea ecx, [ebp - 0x3c]
call fcn.00497310
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 7
mov ecx, dword [esi + 4]
push eax
call fcn.004508d0
push dword [ebp - 0x38]
push str.rm___s__command_requested
push dword [esi + 0xc8]
call fcn.00406360
add esp, 0xc
mov ecx, esi
call fcn.0047adf0
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
call fcn.0044be20
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.0044c080
test al, al
je 0x479573
lea ecx, [ebp - 0x20]
call fcn.0044bfa0
test al, al
je 0x47958f
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.00450b00
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xa
jmp 0x47921d
lea ecx, [ebp - 0x54]
call fcn.00497310
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xb
call fcn.00497310
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0xc
mov ecx, dword [esi + 4]
push eax
call fcn.004508d0
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x68]
push eax
call fcn.004508d0
push dword [ebp - 0x64]
push dword [ebp - 0x50]
push str.move___s____s__command_requested
push dword [esi + 0xc8]
call fcn.00406360
add esp, 0x10
mov ecx, esi
call fcn.0047adf0
push dword [ebp - 0x50]
lea ecx, [ebp - 0x38]
call fcn.0044be20
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
push dword [ebp - 0x64]
call fcn.0044be20
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x38]
call fcn.0044c6a0
test al, al
je 0x4795ab
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.00450b00
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.00404840
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x38], vtable.StringStorage.0
call fcn.00404840
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x68], vtable.StringStorage.0
call fcn.00404840
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x54], vtable.StringStorage.0
call fcn.00404840
jmp case.0x479093.67108607
lea ecx, [ebp - 0x54]
call fcn.00497310
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0x11
mov ecx, dword [esi + 4]
push eax
call fcn.004508d0
push dword [ebp - 0x50]
push str.Size_of_folder__s_requested
push dword [esi + 0xc8]
call fcn.00406360
add esp, 0xc
mov ecx, esi
call fcn.0047adf0
lea eax, [ebp - 0x18]
xorps xmm0, xmm0
push eax
push dword [ebp - 0x50]
mov ecx, esi
movlpd qword [ebp - 0x18], xmm0
call fcn.0047ac30
test al, al
je 0x4795c7
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.00450b00
push dword [ebp - 0x14]
mov ecx, dword [esi + 8]
push dword [ebp - 0x18]
call fcn.00450b50
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.00404840
jmp case.0x479093.67108607
mov ecx, esi
call fcn.00479ff0
jmp case.0x479093.67108607
mov ecx, esi
call fcn.0047a210
jmp case.0x479093.67108607
mov ecx, esi
call fcn.0047a4f0
jmp case.0x479093.67108607
mov ecx, esi
call fcn.0047a670
jmp case.0x479093.67108607
mov ecx, esi
call fcn.0047a800
jmp case.0x479093.67108607
mov ecx, esi
call fcn.00479c90
jmp case.0x479093.67108607
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [esi + 0xc0]
mov dword [esi + 4], 0
call fcn.0047b1a0
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.004972b0
push 0x4f8c48
lea eax, [ebp - 0x80]
push eax
call fcn.00499378
push str.Directory_already_exists
lea ecx, [ebp - 0x94]
call fcn.004972b0
push 0x4f8c48
lea eax, [ebp - 0x94]
push eax
call fcn.00499378
lea ecx, [ebp - 0xbc]
call fcn.0041c920
push 0x4f89dc
lea eax, [ebp - 0xbc]
push eax
call fcn.00499378
lea ecx, [ebp - 0xe4]
call fcn.0041c920
push 0x4f89dc
lea eax, [ebp - 0xe4]
push eax
call fcn.00499378
lea ecx, [ebp - 0x10c]
call fcn.0041c920
push 0x4f89dc
lea eax, [ebp - 0x10c]
push eax
call fcn.00499378
lea ecx, [ebp - 0x134]
call fcn.0041c920
push 0x4f89dc
lea eax, [ebp - 0x134]
push eax
call fcn.00499378
lea ecx, [ebp - 0x15c]
call fcn.0041c920
push 0x4f89dc
lea eax, [ebp - 0x15c]
push eax
call fcn.00499378
nop
lcall 0x4791, 0x66004790
add dh, cl
xchg esp, eax
inc edi
add byte [ecx - 0x55ffb86c], ah
xchg esp, eax
inc edi
add byte [ebx - 0x43ffb86c], dh
xchg esp, eax
inc edi
add ch, al
xchg esp, eax
inc edi
add byte [edx - 0x6f], dh
inc edi
add byte [edi - 0x6e], al
inc edi
add dl, ch
xchg edx, eax
inc edi
add dh, ch
xchg ebx, eax
inc edi
add dh, ch
xchg esp, eax
inc edi
add byte [eax], al
or al, 1
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