Function at 0x407340
Capabilities:
Create directory

Disassembly:
push 0xffffffffffffffff
push 0x43ef12
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x451530]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov ebx, ecx
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4075e4
mov ebp, dword [esp + 0x28]
mov dword [ebp + 0x30], eax
test edx, edx
jne 0x407386
xor eax, eax
jmp 0x407399
mov eax, edx
lea esi, [eax + 1]
jmp 0x407390
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407390
sub eax, esi
push eax
push edx
lea ecx, [ebp + 0x34]
call fcn.00402850
test edi, edi
jne 0x4073ab
xor eax, eax
jmp 0x4073b9
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4073b0
sub eax, edx
push eax
push edi
lea ecx, [ebp + 0x38]
call fcn.00402850
lea edi, [ebp + 0x3c]
test ebx, ebx
jne 0x4073ce
xor eax, eax
jmp 0x4073dc
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4073d3
sub eax, edx
push eax
push ebx
mov ecx, edi
call fcn.00402850
push 0xe
push 0x4464c4
mov ecx, 0x45679c
call fcn.00402850
mov eax, dword [0x45679c]
mov esi, dword [eax - 0xc]
push 0x2e
push eax
call fcn.00428b7e
add esp, 8
or ebp, 0xffffffff
test eax, eax
jne 0x407414
mov eax, ebp
jmp 0x40741a
sub eax, dword [0x45679c]
sub esi, eax
push esi
lea eax, [esp + 0x30]
push eax
mov ecx, 0x45679c
call fcn.00408280
mov dword [esp + 0x20], 0
mov ecx, dword [0x45679c]
push 0x2e
push ecx
call fcn.00428b7e
add esp, 8
test eax, eax
jne 0x40744d
mov eax, ebp
jmp 0x407453
sub eax, dword [0x45679c]
push eax
lea edx, [esp + 0x34]
push edx
mov ecx, 0x45679c
call fcn.00402010
push eax
mov ecx, 0x45679c
mov byte [esp + 0x24], 1
call fcn.00402420
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407497
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 4
push str._old
mov ecx, 0x45679c
call fcn.00405790
mov esi, dword [esp + 0x2c]
mov eax, dword [esi - 0xc]
push eax
push esi
mov ecx, 0x45679c
call fcn.00405790
push 0x45679c
lea ecx, [esp + 0x34]
push edi
push ecx
call fcn.00405440
add esp, 0xc
push eax
mov ecx, 0x4567a0
mov byte [esp + 0x24], 2
call fcn.00402420
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407502
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x28]
push 1
lea ecx, [esp + 0x34]
push ecx
add edi, 0x34
mov ecx, edi
call fcn.00408280
mov eax, dword [eax]
push 0x44611c
push eax
call fcn.004294a9
add esp, 8
test eax, eax
mov eax, dword [esp + 0x30]
setne bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40754b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x40755d
push 1
push 0x44611c
mov ecx, edi
call fcn.00405790
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0x38]
add edi, 0x38
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
test eax, eax
jne 0x40757d
mov eax, dword [edi]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x14
call fcn.0040a6c2
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x20], 3
test eax, eax
je 0x4075a9
push 0
push 0
push 0
push 0
push 1
push 0
mov ecx, eax
call fcn.00417671
jmp 0x4075ab
xor eax, eax
mov edi, dword [esp + 0x28]
push 0
push 0
push 1
push 0
mov dword [edi + 0x40], eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [edi + 0x28], eax
test eax, eax
lea eax, [esi - 0x10]
mov dword [esp + 0x20], ebp
lea ecx, [eax + 0xc]
jne 0x4075e8
lock xadd dword [ecx], ebp
dec ebp
test ebp, ebp
jg 0x4075e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x407600
lock xadd dword [ecx], ebp
dec ebp
test ebp, ebp
jg 0x4075fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0xc