Function at 0x499556
Capabilities:
Create directory

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov eax, edx
push edi
xor edi, edi
mov dword [ebp - 4], eax
mov dword [ebp - 8], edi
mov ebx, edi
test eax, eax
je 0x4997c2
push edi
push edi
push 0x4093a8
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov ebx, eax
test ebx, ebx
jne 0x4995ef
mov eax, dword [section..data]
mov edi, 0x80070000
cmp eax, section..data
je 0x4995d5
test byte [eax + 0x1c], 8
je 0x4995d5
cmp byte [eax + 0x19], 2
jb 0x4995d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x4995b6
movzx esi, si
or esi, edi
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x30
mov edx, 0x416a14
pop ecx
call fcn.00421fda
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x4997b3
movzx esi, si
or esi, edi
jmp 0x4997b1
push 0x416884
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
jne 0x499645
mov eax, dword [section..data]
mov edi, 0x80070000
cmp eax, section..data
je 0x4995d5
test byte [eax + 0x1c], 8
je 0x4995d5
cmp byte [eax + 0x19], 2
jb 0x4995d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x49962f
movzx esi, si
or esi, edi
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x31
jmp 0x4995ca
lea eax, [ebp - 8]
mov ecx, esi
push eax
push edi
push edi
push 0x40e17c
call dword [0x5035f0]
call esi
mov esi, eax
test esi, esi
jns 0x49969f
mov eax, dword [section..data]
cmp eax, section..data
je 0x4997b5
test byte [eax + 0x1c], 8
je 0x4997b5
cmp byte [eax + 0x19], 2
jb 0x4997b5
call fcn.0042386b
push esi
push 0x41689c
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x32
jmp 0x4996fa
push dword [ebp - 8]
push 0x4168cc
push 0x104
push dword [ebp - 4]
call fcn.0041f7a9
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x49970a
mov eax, dword [section..data]
cmp eax, section..data
je 0x4997b5
test byte [eax + 0x1c], 8
je 0x4997b5
cmp byte [eax + 0x19], 2
jb 0x4997b5
call fcn.0042386b
push esi
push 0x4168dc
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x33
mov edx, 0x416a14
pop ecx
call fcn.0042371b
jmp 0x4997b5
push edi
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4997bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp edi, 0xb7
je 0x4997bd
test edi, edi
jg 0x499738
mov esi, edi
jmp 0x499741
movzx esi, di
or esi, 0x80070000
mov eax, dword [section..data]
cmp eax, section..data
je 0x4997b1
test byte [eax + 0x1c], 1
je 0x49977d
cmp byte [eax + 0x19], 2
jb 0x49977d
call fcn.0042386b
push edi
push eax
mov eax, dword [section..data]
mov edx, 0x416a14
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x34
pop ecx
call fcn.00421fda
mov eax, dword [section..data]
cmp eax, section..data
je 0x4997b1
test byte [eax + 0x1c], 1
je 0x4997b1
cmp byte [eax + 0x19], 3
jb 0x4997b1
call fcn.0042386b
push dword [ebp - 4]
mov edx, 0x416a14
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x35
pop ecx
call fcn.004330da
test esi, esi
jns 0x4997bd
mov eax, dword [ebp - 4]
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 8]
jmp 0x4997c7
mov esi, 0x80070057
test edi, edi
je 0x4997d2
push edi
call dword [sym.imp.ole32.dll_CoTaskMemFree]
test ebx, ebx
je 0x4997dd
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret