Function at 0x40d540
Capabilities:
Create directory
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x52dc6b
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x58b998]
xor eax, esp
mov dword [esp + 0x118], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x58b998]
xor eax, esp
push eax
lea eax, [esp + 0x130]
mov dword fs:[0], eax
mov eax, dword [esp + 0x144]
mov edi, dword [esp + 0x140]
push 1
mov esi, ecx
push 0x58d50c
lea ecx, [esp + 0x60]
mov dword [esp + 0x20], eax
call fcn.0041f3d1
xor ebx, ebx
push 0xffffffffffffffff
xor ecx, ecx
push ebx
mov word [esp + 0xc4], cx
mov ebp, 7
push edi
lea ecx, [esp + 0xc4]
mov dword [esp + 0x144], ebx
mov dword [esp + 0xdc], ebp
mov dword [esp + 0xd8], ebx
call fcn.00401620
push 0x5f
lea edx, [esp + 0xbc]
push 0x3f
push edx
mov byte [esp + 0x144], 1
call fcn.0040dbc0
push 0x5f
lea eax, [esp + 0xc8]
push 0x7c
push eax
call fcn.0040dbc0
push 0x5f
lea ecx, [esp + 0xd4]
push 0x3c
push ecx
call fcn.0040dbc0
push 0x5f
lea edx, [esp + 0xe0]
push 0x3e
push edx
call fcn.0040dbc0
push 0x5f
lea eax, [esp + 0xec]
push 0x3a
push eax
call fcn.0040dbc0
push 0x5f
lea ecx, [esp + 0xf8]
push 0x5c
push ecx
call fcn.0040dbc0
add esp, 0x48
push 0x5f
lea edx, [esp + 0xbc]
push 0x2f
push edx
call fcn.0040dbc0
push 0x5f
lea eax, [esp + 0xc8]
push 0x2e
push eax
call fcn.0040dbc0
xor ecx, ecx
add esp, 0x18
mov dword [esp + 0x128], ebp
mov dword [esp + 0x124], ebx
mov word [esp + 0x114], cx
mov dword [esp + 0x10c], ebx
push ebx
xor edx, edx
push 0x568a30
lea ecx, [esp + 0xa4]
mov byte [esp + 0x140], 2
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xb8], ebx
mov word [esp + 0xa8], dx
call fcn.004018d0
xor eax, eax
mov dword [esp + 0x108], ebp
mov dword [esp + 0x104], ebx
mov word [esp + 0xf4], ax
xor ecx, ecx
mov dword [esp + 0xec], ebp
mov dword [esp + 0xe8], ebx
mov word [esp + 0xd8], cx
lea edx, [esp + 0x17]
push edx
lea eax, [esp + 0xf4]
push eax
mov ecx, esi
mov byte [esp + 0x140], 5
mov byte [esp + 0x1f], 1
call fcn.0040d350
test al, al
je 0x40dab0
lea ecx, [esp + 0xb8]
push ecx
lea edx, [esp + 0xf4]
push edx
lea eax, [esp + 0x28]
push eax
call fcn.00401c40
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xe0]
mov byte [esp + 0x144], 6
call fcn.00401620
mov ebp, 8
mov byte [esp + 0x138], 5
cmp dword [esp + 0x38], ebp
jb 0x40d76a
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0040dd3a
add esp, 4
mov edx, dword [esp + 0x148]
cmp byte [edx], bl
je 0x40d8bc
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0xdc]
push eax
lea ecx, [esp + 0xa8]
call fcn.00401620
push 1
push 0xffffffffffffffff
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0x28], 0x5c
call fcn.00403c00
mov esi, eax
cmp esi, 0xffffffff
je 0x40d822
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x110]
inc esi
call fcn.00402d50
mov byte [esp + 0x138], 7
cmp dword [eax + 0x18], ebp
jb 0x40d7d8
mov edx, dword [eax + 4]
jmp 0x40d7db
lea edx, [eax + 4]
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x40d7e0
sub eax, edi
sar eax, 1
push eax
push edx
push esi
lea ecx, [esp + 0xa8]
call fcn.0040ce90
mov byte [esp + 0x138], 5
cmp dword [esp + 0x54], ebp
jb 0x40d954
mov eax, dword [esp + 0x40]
push eax
call fcn.0040dd3a
add esp, 4
jmp 0x40d954
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x110]
call fcn.00402d50
lea edx, [esp + 0xd4]
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x144], 8
call fcn.00401c40
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xa8]
mov byte [esp + 0x144], 9
call fcn.00401620
cmp dword [esp + 0x54], ebp
jb 0x40d87f
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0040dd3a
add esp, 4
xor edx, edx
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], ebx
mov word [esp + 0x40], dx
mov byte [esp + 0x138], 5
cmp dword [esp + 0x98], ebp
jb 0x40d954
mov eax, dword [esp + 0x84]
push eax
call fcn.0040dd3a
add esp, 4
jmp 0x40d954
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x110]
call fcn.00402d50
push eax
lea edx, [esp + 0xd8]
push edx
lea eax, [esp + 0x6c]
push eax
mov byte [esp + 0x144], 0xa
call fcn.00401c40
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xa8]
mov byte [esp + 0x144], 0xb
call fcn.00401620
cmp dword [esp + 0x7c], ebp
jb 0x40d916
mov ecx, dword [esp + 0x68]
push ecx
call fcn.0040dd3a
add esp, 4
xor edx, edx
mov esi, 7
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], ebx
mov word [esp + 0x68], dx
mov byte [esp + 0x138], 5
cmp dword [esp + 0x38], ebp
jb 0x40d945
mov eax, dword [esp + 0x24]
push eax
call fcn.0040dd3a
add esp, 4
xor ecx, ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebx
mov word [esp + 0x24], cx
mov eax, dword [esp + 0xa0]
cmp dword [esp + 0xb4], ebp
jae 0x40d96b
lea eax, [esp + 0xa0]
push eax
call fcn.0040ba10
add esp, 4
test al, al
jne 0x40d99b
mov eax, dword [esp + 0xa0]
cmp dword [esp + 0xb4], ebp
jae 0x40d98f
lea eax, [esp + 0xa0]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40d9b8
inc dword [esp + 0x10c]
cmp dword [esp + 0x10c], 0x2328
jl 0x40d76a
jmp 0x40dab5
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0xa4]
push edx
call fcn.00401620
cmp dword [esp + 0xec], ebp
jb 0x40d9e5
mov eax, dword [esp + 0xd8]
push eax
call fcn.0040dd3a
add esp, 4
xor ecx, ecx
mov esi, 7
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov word [esp + 0xd8], cx
cmp dword [esp + 0x108], ebp
jb 0x40da1b
mov edx, dword [esp + 0xf4]
push edx
call fcn.0040dd3a
add esp, 4
xor eax, eax
mov dword [esp + 0x108], esi
mov dword [esp + 0x104], ebx
mov word [esp + 0xf4], ax
cmp dword [esp + 0xb4], ebp
jb 0x40da4c
mov ecx, dword [esp + 0xa0]
push ecx
call fcn.0040dd3a
add esp, 4
xor edx, edx
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], ebx
mov word [esp + 0xa0], dx
cmp dword [esp + 0xd0], ebp
jb 0x40da7d
mov eax, dword [esp + 0xbc]
push eax
call fcn.0040dd3a
add esp, 4
xor ecx, ecx
mov word [esp + 0xbc], cx
lea ecx, [esp + 0x58]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x138], 0xffffffff
call fcn.0041f3ad
mov al, 1
jmp 0x40db94
mov ebp, 8
cmp dword [esp + 0xec], ebp
jb 0x40dace
mov edx, dword [esp + 0xd8]
push edx
call fcn.0040dd3a
add esp, 4
xor eax, eax
mov esi, 7
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov word [esp + 0xd8], ax
cmp dword [esp + 0x108], ebp
jb 0x40db04
mov ecx, dword [esp + 0xf4]
push ecx
call fcn.0040dd3a
add esp, 4
xor edx, edx
mov dword [esp + 0x108], esi
mov dword [esp + 0x104], ebx
mov word [esp + 0xf4], dx
cmp dword [esp + 0xb4], ebp
jb 0x40db35
mov eax, dword [esp + 0xa0]
push eax
call fcn.0040dd3a
add esp, 4
xor ecx, ecx
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], ebx
mov word [esp + 0xa0], cx
cmp dword [esp + 0xd0], ebp
jb 0x40db66
mov edx, dword [esp + 0xbc]
push edx
call fcn.0040dd3a
add esp, 4
xor eax, eax
lea ecx, [esp + 0x58]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov word [esp + 0xbc], ax
mov dword [esp + 0x138], 0xffffffff
call fcn.0041f3ad
xor al, al
mov ecx, dword [esp + 0x130]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.0050bda6
add esp, 0x128
ret 0x10