Function at 0x414c10
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4701d8
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x48f310]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
push edi
mov eax, dword [0x48f310]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
cmp dword [edi + 8], 0
mov ebx, ecx
mov dword [esp + 0x18], edi
je 0x414f88
lea ecx, [ecx]
or ecx, 0xffffffff
cmp dword [ebx + 0xc], ecx
jne 0x414f71
mov eax, dword [edi + 8]
mov dword [esp + 0x14], ecx
test eax, eax
je 0x414c89
dec eax
mov dword [edi + 8], eax
mov eax, dword [edi + 4]
movzx edx, byte [eax]
inc eax
mov dword [esp + 0x14], edx
mov dword [edi + 4], eax
mov al, byte [esp + 0x14]
mov byte [esp + 0x10], al
cmp dword [ebx + 0xc], ecx
jne 0x414f7e
cmp al, 0x3a
je 0x414d67
mov eax, dword [ebx + 0x14]
lea esi, [ebx + 0x10]
lea ecx, [esp + 0x10]
cmp ecx, eax
jae 0x414d14
mov edx, dword [esi]
cmp edx, ecx
ja 0x414d14
mov edi, ecx
mov ecx, dword [esi + 8]
sub edi, edx
mov dword [esp + 0x14], edi
cmp eax, ecx
jne 0x414cfa
sub eax, edx
cmp eax, 0xfffffffe
ja 0x414fab
inc eax
sub ecx, edx
cmp eax, ecx
jbe 0x414cfa
mov edx, ecx
shr edx, 1
or edi, 0xffffffff
sub edi, edx
cmp edi, ecx
jae 0x414ce8
xor ecx, ecx
jmp 0x414cea
add ecx, edx
cmp ecx, eax
jae 0x414cf0
mov ecx, eax
push ecx
call fcn.00416900
mov edi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [esi]
test ecx, ecx
je 0x414d08
mov dl, byte [eax + edi]
mov byte [ecx], dl
inc dword [esi + 4]
mov edi, dword [esp + 0x18]
jmp 0x414f7e
mov ecx, dword [esi + 8]
cmp eax, ecx
jne 0x414d52
mov edx, dword [esi]
sub eax, edx
cmp eax, 0xfffffffe
ja 0x414fab
inc eax
sub ecx, edx
cmp eax, ecx
jbe 0x414d52
mov edx, ecx
shr edx, 1
or edi, 0xffffffff
sub edi, edx
cmp edi, ecx
jae 0x414d40
xor ecx, ecx
jmp 0x414d42
add ecx, edx
cmp ecx, eax
jae 0x414d48
mov ecx, eax
push ecx
call fcn.00416900
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 4]
test eax, eax
je 0x414d5f
mov cl, byte [esp + 0x14]
mov byte [eax], cl
inc dword [esi + 4]
jmp 0x414f7e
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea edx, [esp + 0x14]
push edx
sub eax, ecx
push ecx
mov dword [esp + 0x1c], 0
call fcn.00405030
mov edi, dword [esp + 0x1c]
push 0xa
push 0
push edi
call fcn.0045213f
add esp, 0x14
push edi
mov dword [ebx + 0xc], eax
call fcn.00450827
mov eax, esp
mov dword [esp + 0x18], esp
call fcn.00402a24
lea eax, [esp + 0x4c]
call fcn.00401f4d
push 0
push 0
lea edi, [esp + 0x50]
call fcn.004012f5
mov dword [esp + 0x90], 0
mov eax, dword [ebx + 8]
add eax, 0x20
push 0xffffffffffffffff
push eax
xor eax, eax
mov ecx, edi
call fcn.00401e6a
push 0x4795d0
mov eax, edi
push eax
call fcn.00401cf8
mov eax, dword [ebx + 8]
add eax, 4
push 0
push eax
or eax, 0xffffffff
call fcn.00401d62
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
call fcn.00402a24
lea eax, [esp + 0x28]
call fcn.00401f4d
push 0
push 0
lea edi, [esp + 0x2c]
call fcn.004012f5
push 0xffffffffffffffff
lea ecx, [esp + 0x4c]
push ecx
xor eax, eax
mov ecx, edi
call fcn.00401e6a
mov eax, edi
mov byte [esp + 0x90], 1
call fcn.00401489
push eax
lea edi, [esp + 0x68]
call fcn.00403e60
add esp, 4
push 0
mov eax, edi
call fcn.00401489
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov ecx, edi
call fcn.004012b8
lea ecx, [esp + 0x24]
mov byte [esp + 0x90], 0
call fcn.004012b8
lea edi, [ebx + 0x20]
lea eax, [esp + 0x48]
call fcn.00401489
cmp dword [edi + 0x58], 0
lea esi, [edi + 4]
jne 0x414f58
push 0x40
push 0x22
push eax
call fcn.00468c7c
add esp, 0xc
test eax, eax
je 0x414f58
mov ecx, eax
push 1
mov eax, esi
call fcn.00416320
lea edi, [esp + 0x1c]
mov eax, esi
call fcn.00416a40
mov edi, eax
mov byte [esp + 0x90], 2
call fcn.00416bc0
mov edi, eax
call fcn.00416500
mov byte [esp + 0x90], 0
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x414f15
push 0
lea ecx, [esp + 0x24]
call fcn.0046848c
mov eax, dword [edi + 4]
test eax, eax
je 0x414ef5
cmp eax, 0xffffffff
jae 0x414ef5
dec eax
mov dword [edi + 4], eax
mov esi, dword [edi + 4]
neg esi
sbb esi, esi
lea ecx, [esp + 0x20]
not esi
call fcn.004684b4
and esi, edi
je 0x414f15
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov edx, dword [ebx + 0x20]
mov ecx, dword [edx + 4]
lea eax, [ebx + 0x20]
add ecx, eax
mov eax, dword [ecx + 0x38]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push 0
call fcn.00403260
lea ecx, [esp + 0x48]
mov dword [ebx + 0xc8], 0
mov dword [esp + 0x90], 0xffffffff
call fcn.004012b8
mov edi, dword [esp + 0x18]
jmp 0x414f7e
mov ecx, dword [edi]
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + edi + 0xc]
add ecx, edi
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x414f2d
or eax, 4
jmp 0x414f2d
mov edx, edi
mov eax, ebx
call fcn.00414fc0
test al, al
jne 0x414f88
cmp dword [edi + 8], 0
jne 0x414c60
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.0045080d
mov esp, ebp
pop ebp
ret 4
push str.vector_T__too_long
call fcn.00467d36
int3