Function at 0x40e760
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x542368
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push esi
push edi
mov eax, dword [0x594ca8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0x14]
push eax
call fcn.004079f0
add esp, 4
mov dword [ebp - 4], 0
call fcn.0040e9a0
cmp eax, 1
jne 0x40e7cf
call fcn.0040d7c0
call fcn.0040da00
call fcn.0040dcf0
call fcn.0040dfe0
call fcn.0040e300
call fcn.0040e560
jmp 0x40e960
call fcn.0040e9a0
cmp eax, 2
jne 0x40e7fc
call fcn.0040b230
call fcn.00407fe0
call fcn.004082d0
call fcn.004085c0
push 1
call fcn.004088e0
add esp, 4
call fcn.00408c50
call fcn.0040da00
call fcn.0040dcf0
call fcn.0040dfe0
call fcn.0040e300
call fcn.0040e560
call fcn.00417597
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40e82f
push 0x80004005
call fcn.00404860
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x10], eax
lea esi, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.00402240
mov esi, dword [ebp - 0x10]
push 0x5c
push esi
call fcn.005172f0
add esp, 8
test eax, eax
jne 0x40e861
or eax, 0xffffffff
jmp 0x40e865
sub eax, esi
sar eax, 1
push eax
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x10]
call fcn.004037c0
push str.exe
push eax
lea edx, [ebp - 0x18]
push edx
mov byte [ebp - 4], 2
call fcn.00404260
add esp, 0xc
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
call fcn.00404790
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e8b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e8db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x14]
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 1
push ecx
lea edx, [ebp - 0x14]
mov dword [ebp - 0x20], esp
mov ecx, esp
push edx
call fcn.00404900
push ecx
lea eax, [ebp - 0x10]
mov dword [ebp - 0x24], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 4
call fcn.00404900
mov byte [ebp - 4], 1
call fcn.00402a90
push 1
push 1
lea edi, [ebp - 0x14]
call fcn.00408ec0
mov ecx, edi
push 1
push ecx
call fcn.004096e0
add esp, 0x1c
call fcn.0040b780
call fcn.0040bc20
call dword [sym.imp.ole32.dll_CoUninitialize]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40e960
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e986
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret