Function at 0x100e43c0
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x65c
mov eax, dword [0x101ba0ec]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x658], ecx
mov dword [ebp - 0x654], eax
push esi
push edi
test ebx, ebx
je 0x100e4517
test eax, eax
je 0x100e4517
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.1012bd00
add esp, 0xc
lea eax, [ebp - 0x628]
push 0x208
push 0
push eax
call fcn.1012bd00
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 1
push 0x100e4010
push 0x100e4000
push 0x100e3ff0
push 0x100e3fe0
push 0x100e3fb0
push fcn.100e3fa0
push 0x100e3f90
call dword [sym.imp.Cabinet.dll_FDICreate]
mov edi, eax
add esp, 0x24
test edi, edi
je 0x100e4517
push 0x104
lea eax, [ebp - 0x110]
push 0
push eax
call fcn.1012bd00
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push 0
push eax
call fcn.1012bd00
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
add esp, 0xc
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push ebx
push 0
push 1
call esi
push 0
push 0
push eax
lea eax, [ebp - 0x110]
push eax
push 0xffffffffffffffff
push ebx
push 0
push 1
call esi
push 0
lea eax, [ebp - 0x650]
push eax
push 0
push 0x40
lea eax, [ebp - 0x110]
push 0x8020
push eax
call fcn.1013d7ae
mov esi, dword [ebp - 0x650]
or ecx, 0xffffffff
add esp, 0x18
test eax, eax
cmovne esi, ecx
cmp esi, ecx
je 0x100e450d
lea eax, [ebp - 0x64c]
push eax
push esi
push edi
call dword [sym.imp.Cabinet.dll_FDIIsCabinet]
add esp, 0xc
push esi
test eax, eax
jne 0x100e452c
call fcn.1013dfb2
add esp, 4
push edi
call dword [sym.imp.Cabinet.dll_FDIDestroy]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1010a832
mov esp, ebp
pop ebp
ret 8
call fcn.1013dfb2
add esp, 4
push 0x5c
push ebx
call fcn.1012acb4
mov esi, eax
add esp, 8
test esi, esi
jne 0x100e456b
push ebx
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 1
lea eax, [ebp - 0x420]
push 0x1018444c
push eax
call fcn.1013d0c5
add esp, 0xc
jmp 0x100e45b1
lea eax, [esi + 2]
push eax
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
sub esi, ebx
sar esi, 1
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.1013d0c5
lea esi, [esi*2 + 2]
add esp, 0xc
cmp esi, 0x208
jae 0x100e4653
xor eax, eax
mov word [ebp + esi - 0x420], ax
push dword [ebp - 0x654]
push 0x101c80a0
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x101c80a0
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x100e45dd
push eax
push 0x101c80a0
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x628]
push eax
call fcn.100477c0
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.100477c0
mov eax, dword [ebp - 0x658]
push dword [eax + 4]
lea eax, [ebp - 0x218]
push 0
push 0x100e4020
push 0
push eax
lea eax, [ebp - 0x110]
push eax
push edi
call dword [sym.imp.Cabinet.dll_FDICopy]
add esp, 0x2c
push edi
cmp eax, 1
jne 0x100e450e
call dword [sym.imp.Cabinet.dll_FDIDestroy]
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.1010a832
mov esp, ebp
pop ebp
ret 8
call fcn.1010b046
int3