Function at 0x479000
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bf970
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.0047aea0
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.0x479063.67108607
movzx eax, byte [eax + 0x4795e8]
jmp dword [eax*4 + 0x4795b4]
push str.compression_support_requested
push 0x4cde84
push dword [esi + 0xc8]
call fcn.004054c0
add esp, 0xc
push str.supported
push str.sending_compression_support_reply:__s
push dword [esi + 0xc8]
call fcn.00405550
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 0x4790ed
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 0x4790d0
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 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 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.0x479063.67108607
mov ecx, esi
call fcn.004796b0
jmp case.0x479063.67108607
lea ecx, [ebp - 0x3c]
call fcn.00497300
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 3
mov ecx, dword [esi + 4]
push eax
call fcn.004508e0
push dword [ebp - 0x38]
push str.mkdir___s__command_requested
push dword [esi + 0xc8]
call fcn.004054c0
add esp, 0xc
mov ecx, esi
call fcn.0047adc0
cmp byte [ebp - 0x2c], 0
jne 0x4794eb
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
call fcn.0044be50
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
call fcn.0044c0b0
test al, al
jne 0x479506
push 0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x479527
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.00450b10
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.004039a0
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x3c], vtable.StringStorage.0
call fcn.004039a0
jmp case.0x479063.67108607
lea ecx, [ebp - 0x3c]
call fcn.00497300
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 7
mov ecx, dword [esi + 4]
push eax
call fcn.004508e0
push dword [ebp - 0x38]
push str.rm___s__command_requested
push dword [esi + 0xc8]
call fcn.004054c0
add esp, 0xc
mov ecx, esi
call fcn.0047adc0
push dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
call fcn.0044be50
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.0044c0b0
test al, al
je 0x479543
lea ecx, [ebp - 0x20]
call fcn.0044bfd0
test al, al
je 0x47955f
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.00450b10
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xa
jmp 0x4791ed
lea ecx, [ebp - 0x54]
call fcn.00497300
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xb
call fcn.00497300
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0xc
mov ecx, dword [esi + 4]
push eax
call fcn.004508e0
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x68]
push eax
call fcn.004508e0
push dword [ebp - 0x64]
push dword [ebp - 0x50]
push str.move___s____s__command_requested
push dword [esi + 0xc8]
call fcn.004054c0
add esp, 0x10
mov ecx, esi
call fcn.0047adc0
push dword [ebp - 0x50]
lea ecx, [ebp - 0x38]
call fcn.0044be50
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
push dword [ebp - 0x64]
call fcn.0044be50
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x38]
call fcn.0044c6d0
test al, al
je 0x47957b
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.00450b10
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.004039a0
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x38], vtable.StringStorage.0
call fcn.004039a0
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x68], vtable.StringStorage.0
call fcn.004039a0
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x54], vtable.StringStorage.0
call fcn.004039a0
jmp case.0x479063.67108607
lea ecx, [ebp - 0x54]
call fcn.00497300
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0x11
mov ecx, dword [esi + 4]
push eax
call fcn.004508e0
push dword [ebp - 0x50]
push str.Size_of_folder__s_requested
push dword [esi + 0xc8]
call fcn.004054c0
add esp, 0xc
mov ecx, esi
call fcn.0047adc0
lea eax, [ebp - 0x18]
xorps xmm0, xmm0
push eax
push dword [ebp - 0x50]
mov ecx, esi
movlpd qword [ebp - 0x18], xmm0
call fcn.0047ac00
test al, al
je 0x479597
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.00450b10
push dword [ebp - 0x14]
mov ecx, dword [esi + 8]
push dword [ebp - 0x18]
call fcn.00450b60
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.004039a0
jmp case.0x479063.67108607
mov ecx, esi
call fcn.00479fc0
jmp case.0x479063.67108607
mov ecx, esi
call fcn.0047a1e0
jmp case.0x479063.67108607
mov ecx, esi
call fcn.0047a4c0
jmp case.0x479063.67108607
mov ecx, esi
call fcn.0047a640
jmp case.0x479063.67108607
mov ecx, esi
call fcn.0047a7d0
jmp case.0x479063.67108607
mov ecx, esi
call fcn.00479c60
jmp case.0x479063.67108607
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [esi + 0xc0]
mov dword [esi + 4], 0
call fcn.0047b180
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.004972a0
push 0x4f8318
lea eax, [ebp - 0x80]
push eax
call fcn.00499368
push str.Directory_already_exists
lea ecx, [ebp - 0x94]
call fcn.004972a0
push 0x4f8318
lea eax, [ebp - 0x94]
push eax
call fcn.00499368
lea ecx, [ebp - 0xbc]
call fcn.0041cad0
push 0x4f80ac
lea eax, [ebp - 0xbc]
push eax
call fcn.00499368
lea ecx, [ebp - 0xe4]
call fcn.0041cad0
push 0x4f80ac
lea eax, [ebp - 0xe4]
push eax
call fcn.00499368
lea ecx, [ebp - 0x10c]
call fcn.0041cad0
push 0x4f80ac
lea eax, [ebp - 0x10c]
push eax
call fcn.00499368
lea ecx, [ebp - 0x134]
call fcn.0041cad0
push 0x4f80ac
lea eax, [ebp - 0x134]
push eax
call fcn.00499368
lea ecx, [ebp - 0x15c]
call fcn.0041cad0
push 0x4f80ac
lea eax, [ebp - 0x15c]
push eax
call fcn.00499368
nop
push 0xffffffffffffff90
inc edi
add byte [esi], dh
xchg ecx, eax
inc edi
add byte [esi + 0x71004794], bl
xchg esp, eax
inc edi
add byte [edx - 0x6c], bh
inc edi
add byte [ebx - 0x73ffb86c], al
xchg esp, eax
inc edi
add byte [ebp + 0x42004794], dl
xchg ecx, eax
inc edi
add byte [edi], dl
xchg edx, eax
inc edi
add byte [edx - 0x41ffb86e], bh
xchg ebx, eax
inc edi
add byte [esi + 0x4794], bh
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