Function at 0x49ac10
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50aee0
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x53307c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x50], eax
xor eax, eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 1
lea edx, [ebp - 0x24]
mov eax, dword [esi + 0xc]
push edx
push 3
push dword [ebp + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
jne 0x49b116
mov ax, word [ebp - 0x24]
test ax, ax
jne 0x49acaf
lea edi, [esi + 0x28]
cmp edi, 0x534cd0
je 0x49ad47
cmp dword [0x534ce4], 8
mov eax, 0x534cd0
push dword [0x534ce0]
cmovae eax, dword [0x534cd0]
mov ecx, edi
push eax
call fcn.00405140
jmp 0x49ad47
cmp ax, 8
jne case.0x49ae88.1
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x48]
call fcn.00418af0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x49acd3
mov edx, dword [eax]
jmp 0x49acd5
xor edx, edx
mov ecx, edx
lea edi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x49ace0
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x28]
call fcn.00405140
mov edi, dword [ebp - 0x48]
test edi, edi
je 0x49ad44
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
dec eax
jne 0x49ad44
test edi, edi
je 0x49ad44
mov eax, dword [edi]
test eax, eax
je 0x49ad22
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x49ad39
push eax
call fcn.0049f22d
add esp, 4
mov dword [edi + 4], 0
push 0xc
push edi
call fcn.0049e956
add esp, 8
lea edi, [esi + 0x28]
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.0049b230
xor eax, eax
cmp dword [ebp + 0x14], eax
jne 0x49b0f8
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 3
lea edx, [ebp - 0x24]
mov eax, dword [esi + 0xc]
push edx
push 9
push dword [ebp + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
jne 0x49b126
mov ax, word [ebp - 0x24]
test ax, ax
jne 0x49ad94
mov dword [esi + 0x5c], 0
mov byte [esi + 0x59], al
jmp 0x49ada8
cmp ax, 0x13
jne 0x49b12c
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x5c], eax
mov byte [esi + 0x59], 1
lea ecx, [ebp - 0x24]
call fcn.0049b230
xor eax, eax
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 4
lea edx, [ebp - 0x24]
mov eax, dword [esi + 0xc]
push edx
push 6
push dword [ebp + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
jne 0x49b136
mov ax, word [ebp - 0x24]
test ax, ax
jne 0x49ade1
mov byte [esi + 0x58], al
jmp 0x49adf6
cmp ax, 0xb
jne 0x49b13c
cmp word [ebp - 0x1c], 0
setne al
mov byte [esi + 0x58], al
lea ecx, [ebp - 0x24]
call fcn.0049b230
xor eax, eax
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 5
lea edx, [ebp - 0x24]
mov eax, dword [esi + 0xc]
push edx
push 0xc
push dword [ebp + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
jne 0x49b146
mov ax, word [ebp - 0x24]
test ax, ax
jne 0x49ae2f
mov byte [esi + 0x60], al
jmp 0x49ae49
cmp ax, 0x40
jne 0x49b14c
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x64], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x68], eax
mov byte [esi + 0x60], 1
lea ecx, [ebp - 0x24]
call fcn.0049b230
xor eax, eax
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 6
lea edx, [ebp - 0x24]
mov eax, dword [esi + 0xc]
push edx
push 7
push dword [ebp + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
jne 0x49b156
movzx eax, word [ebp - 0x24]
cmp eax, 0x15
ja case.0x49ae88.1
movzx eax, byte [eax + 0x49b184]
jmp dword [eax*4 + 0x49b16c]
mov byte [esi + 0x6c], 0
jmp 0x49aece
movzx eax, byte [ebp - 0x1c]
cdq
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], edx
jmp 0x49aeca
movzx eax, word [ebp - 0x1c]
cdq
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], edx
jmp 0x49aeca
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], 0
jmp 0x49aeca
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x70], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x74], eax
mov byte [esi + 0x6c], 1
lea ecx, [ebp - 0x24]
call fcn.0049b230
push edi
lea edx, [esi + 0x10]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.0049a550
lea edi, [esi + 0x40]
mov dword [ebp - 0x48], eax
add esp, 4
cmp edi, eax
je 0x49af23
mov ecx, edi
call fcn.00405280
mov eax, dword [ebp - 0x48]
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov edx, dword [ebp - 0x18]
cmp edx, 8
jb 0x49af5d
mov ecx, dword [ebp - 0x2c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x49af53
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49b15c
push edx
push ecx
call fcn.0049e956
add esp, 8
cmp byte [esi + 0x58], 0
je 0x49af86
cmp dword [edi + 0x14], 8
jb 0x49af6b
mov edi, dword [edi]
push 0
push edi
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov eax, dword [ebp - 0x50]
mov dword [eax], 0
xor eax, eax
jmp 0x49b0f8
mov edx, edi
lea ecx, [ebp - 0x44]
call fcn.0049a450
mov dword [ebp - 4], 8
lea eax, [ebp - 0x44]
cmp dword [ebp - 0x30], 8
push 0
cmovae eax, dword [ebp - 0x44]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
cmp dword [edi + 0x14], 8
mov eax, edi
mov dword [ebp - 0x48], 0
jb 0x49afbe
mov eax, dword [edi]
lea ecx, [ebp - 0x48]
push ecx
push 0
push 1
push 0x80
push 0x1001
push eax
call dword [sym.imp.SHLWAPI.dll_SHCreateStreamOnFileEx]
test eax, eax
jns 0x49aff1
mov eax, dword [ebp - 0x48]
xor esi, esi
mov dword [ebp - 0x4c], esi
test eax, eax
je 0x49afed
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
jmp 0x49b000
mov esi, dword [ebp - 0x48]
mov eax, esi
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], esi
mov byte [ebp - 4], 9
test eax, eax
jne 0x49b06e
cmp dword [edi + 0x14], 8
mov dword [edi + 0x10], eax
jb 0x49b013
mov edi, dword [edi]
xor eax, eax
mov word [edi], ax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x49b02d
movzx esi, si
or esi, 0x80070000
mov edx, dword [ebp - 0x30]
cmp edx, 8
jb 0x49b067
mov ecx, dword [ebp - 0x44]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x49b05d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49b161
push edx
push ecx
call fcn.0049e956
add esp, 8
mov eax, esi
jmp 0x49b0f8
push 0xc
call fcn.0049e926
mov edi, eax
add esp, 4
mov dword [ebp - 0x54], edi
mov dword [edi], vtable.SevenZip::intl::OutStreamWrapper.0
mov dword [edi + 4], 0
mov dword [edi + 8], esi
mov ecx, dword [esi]
push esi
call dword [ecx + 4]
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 8
push esi
mov dword [eax], edi
mov eax, dword [esi]
call dword [eax + 8]
mov edx, dword [ebp - 0x30]
cmp edx, 8
jb 0x49b0e2
mov ecx, dword [ebp - 0x44]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x49b0d8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49b166
push edx
push ecx
call fcn.0049e956
add esp, 8
xor eax, eax
jmp 0x49b0f8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0049e964
mov esp, ebp
pop ebp
ret 0x10
push eax
call fcn.0049df40
push 0x80004005
call fcn.0049df40
push eax
call fcn.0049df40
push 0x80004005
call fcn.0049df40
push eax
call fcn.0049df40
push 0x80004005
call fcn.0049df40
push eax
call fcn.0049df40
push 0x80004005
call fcn.0049df40
push eax
call fcn.0049df40
call fcn.004e9a8c
call fcn.004e9a8c
call fcn.004e9a8c
nop
invalid