Function at 0x45f2e8
Capabilities:
Create directory
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1de8
call fcn.00470240
push ebx
xor ebx, ebx
cmp word [0x485e98], bx
push esi
push edi
mov dword [ebp - 0x20], ebx
je 0x45f75e
push 0x4731c4
mov edi, 0x485e98
push edi
call fcn.00417162
pop ecx
push eax
call dword [sym.imp.NSCRT.dll__wcsicmp]
test eax, eax
pop ecx
pop ecx
je 0x45f369
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
jne 0x45f353
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x45f353
push edi
push 0x104
push 0x485550
call fcn.00467521
jmp 0x45f765
push edi
push 0x485868
push 0x485550
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
jmp 0x45f765
mov esi, 0x485b80
push esi
push 0x104
push 0x485550
call fcn.00467521
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x4965c0
push str.lang_clean_up_ws
lea eax, [ebp - 0x1b8]
push 0x4e
push eax
call fcn.00402528
lea eax, [ebp - 0x1b8]
push esi
push eax
call fcn.004053c5
add esp, 0x18
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
jne 0x45f3d8
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x45f3d8
push edi
push 0x410
lea eax, [ebp - 0x9d8]
push eax
call fcn.00467521
jmp 0x45f3eb
push edi
push 0x485868
lea eax, [ebp - 0x9d8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x9d8]
push eax
lea ecx, [ebp - 0xde8]
call fcn.00407eb6
push eax
call fcn.0041a8c5
cmp eax, ebx
pop ecx
mov dword [ebp - 8], eax
je 0x45f765
push eax
call fcn.0041a1e0
test eax, eax
pop ecx
jne 0x45f753
mov dword [ebp - 0x38], ebx
lea edi, [ebp - 0x34]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
sbb esi, esi
neg esi
mov dword [ebp - 0xc], esi
je 0x45f452
push ebx
push 1
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ebx
jmp 0x45f452
mov esi, dword [ebp - 0xc]
cmp esi, ebx
je 0x45f45f
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push ebx
push ebx
push ebx
push ebx
push 0x104
lea eax, [ebp - 0x168]
push eax
push ebx
push dword [ebp - 8]
call fcn.0041a1b9
mov esi, dword [sym.imp.NSCRT.dll__strnicmp]
push 9
lea eax, [ebp - 0x168]
push str.freeform_
push eax
call esi
add esp, 0x2c
test eax, eax
je 0x45f4ce
push 9
lea eax, [ebp - 0x168]
push 0x47c03c
push eax
call esi
add esp, 0xc
test eax, eax
je 0x45f4ce
lea eax, [ebp - 0x168]
dec eax
push eax
lea eax, [ebp - 0x168]
push 0x475e6c
push eax
call fcn.00414b35
add esp, 0xc
inc eax
mov dword [ebp - 4], eax
jmp 0x45f4d7
lea eax, [ebp - 0x168]
mov dword [ebp - 4], eax
push eax
call fcn.00417130
mov esi, dword [sym.imp.NSCRT.dll__stricmp]
mov edi, eax
mov dword [esp], 0x47c038
push edi
mov dword [ebp - 0x3c], edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x45f56c
push 0x475e68
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x45f56c
push 0x475ec4
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x45f56c
push 0x475ed0
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x45f56c
push 0x475ec8
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x45f56c
push 0x475ec0
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x45f56c
push 0x475e74
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x45f56c
push 0x475ed4
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x45f56c
push 0x47c034
push edi
call esi
test eax, eax
pop ecx
pop ecx
jne 0x45f72f
push dword [ebp - 8]
call fcn.0041ab88
test eax, eax
pop ecx
jne 0x45f72f
push ebx
push dword [ebp - 4]
lea ecx, [ebp - 0x1c]
call fcn.00402d5b
push dword [eax]
mov esi, 0x485b80
push esi
lea eax, [ebp - 0x9d8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push dword [ebp - 0x1c]
call dword [sym.imp.NSCRT.dll_free]
lea eax, [ebp - 0x9d8]
push esi
push eax
mov dword [ebp - 0x1c], ebx
call fcn.004135ab
mov ecx, dword [ebp - 0xc]
add esp, 0xc
neg ecx
push ebx
sbb ecx, ecx
mov eax, 0x40000000
and ecx, eax
or ecx, 0x80
push ecx
push 2
push ebx
push ebx
push eax
lea eax, [ebp - 0x9d8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x45f72f
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], 1
xor eax, eax
cmp dword [ebp - 4], ebx
push 0x800
sete al
mov edi, eax
shl edi, 0xb
lea edi, [ebp + edi - 0x1de8]
push edi
push dword [ebp - 8]
mov dword [ebp - 4], eax
call fcn.0041a470
mov esi, eax
add esp, 0xc
cmp esi, ebx
jne 0x45f635
push dword [ebp - 8]
call fcn.0041a69b
pop ecx
cmp dword [ebp - 0xc], ebx
je 0x45f678
push 0xffffffffffffffff
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp esi, ebx
jle 0x45f69c
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x38]
push eax
push ebx
push esi
push edi
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x45f673
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x45f673
mov dword [ebp - 0x18], ebx
add dword [ebp - 0x10], esi
jmp 0x45f693
cmp esi, ebx
jle 0x45f69c
push ebx
lea eax, [ebp - 0x24]
push eax
push esi
push edi
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x45f693
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jne 0x45f5fe
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x47c038
push dword [ebp - 0x3c]
call dword [sym.imp.NSCRT.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x45f72f
push 0x10
mov dword [ebp - 0x20], 1
call dword [sym.imp.NSCRT.dll_malloc]
push 0x10
mov esi, eax
push ebx
push esi
call sub.NSCRT.dll_memset
mov edi, dword [sym.imp.NSCRT.dll__strdup]
lea eax, [ebp - 0x168]
push eax
call edi
mov dword [esi], eax
add esp, 0x14
lea eax, [ebp - 0x9d8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, ebx
mov dword [esi + 0xc], eax
je 0x45f72f
push 0x27
lea ecx, [ebp - 0x64]
push ecx
push 0xffff
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x45f724
lea eax, [ebp - 0x64]
push eax
call edi
push dword [esi + 0xc]
mov dword [esi + 8], eax
call fcn.0045ed92
pop ecx
pop ecx
push esi
mov ecx, 0x494c8c
call fcn.00410c0b
push dword [ebp - 8]
call fcn.0041a222
test eax, eax
pop ecx
je 0x45f44f
cmp dword [ebp - 0xc], ebx
je 0x45f753
cmp dword [ebp - 0x28], ebx
je 0x45f753
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 8]
call fcn.0041a8d3
pop ecx
jmp 0x45f765
mov word [0x485550], bx
mov eax, dword [ebp - 0x20]
pop edi
pop esi
pop ebx
leave
ret