Function at 0x4721dc
Capabilities:
Create directory
Get common file path
Write file on windows

Disassembly:
push ebp
mov eax, 0x1ef4
lea ebp, [esp - 0x74]
call fcn.00483980
push ebx
xor ebx, ebx
cmp word [0x49f858], bx
mov dword [ebp + 0x54], ebx
jne 0x472212
mov eax, dword [ebp + 0x7c]
cmp eax, ebx
je 0x472206
cmp word [eax], bx
jne 0x472212
mov word [0x49ee10], bx
jmp 0x47277c
mov eax, dword [ebp + 0x7c]
cmp eax, ebx
mov dword [ebp + 0x70], eax
jne 0x472223
mov dword [ebp + 0x70], 0x49f858
push esi
push edi
mov esi, 0x81
mov word [ebp - 0x660], bx
xor eax, eax
mov ecx, esi
lea edi, [ebp - 0x65e]
rep stosd dword es:[edi], eax
push 0x48732c
push dword [ebp + 0x70]
stosw word es:[edi], ax
mov dword [ebp + 0x64], 0x49f540
call fcn.0041b1e3
pop ecx
push eax
call dword [sym.imp.NSCRT.dll__wcsicmp]
test eax, eax
pop ecx
pop ecx
je 0x4722a5
mov esi, dword [ebp + 0x70]
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
jne 0x47228f
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x47228f
push esi
push 0x104
push 0x49ee10
call fcn.0047aaff
jmp 0x47277a
push esi
push 0x49f228
push 0x49ee10
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
jmp 0x47277a
xor eax, eax
mov word [ebp - 0xe80], bx
mov ecx, 0x207
lea edi, [ebp - 0xe7e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x13
xor eax, eax
cmp dword [ebp + 0x7c], ebx
mov byte [ebp - 0x48], bl
pop ecx
lea edi, [ebp - 0x47]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
je 0x472323
xor eax, eax
mov word [ebp - 0x250], bx
mov ecx, esi
lea edi, [ebp - 0x24e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x250]
push eax
mov esi, 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x660]
push eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push 0x487b58
lea eax, [ebp - 0x250]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [ebp - 0x660]
mov dword [ebp + 0x64], eax
jmp 0x472328
mov esi, 0x104
mov edi, dword [ebp + 0x64]
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x4b0460
push str.lang_clean_up_ws
lea eax, [ebp - 0x48]
push 0x4e
push eax
call fcn.00402528
add esp, 0x10
cmp dword [ebp + 0x7c], ebx
jne 0x472368
push edi
push esi
push 0x49ee10
call fcn.0047aaff
lea eax, [ebp - 0x48]
push edi
push eax
call fcn.00406186
pop ecx
pop ecx
push dword [ebp + 0x70]
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
jne 0x472398
push dword [ebp + 0x70]
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x472398
push dword [ebp + 0x70]
lea eax, [ebp - 0xe80]
push 0x410
push eax
call fcn.0047aaff
jmp 0x4723ad
push dword [ebp + 0x70]
lea eax, [ebp - 0xe80]
push 0x49f228
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
cmp dword [ebp + 0x7c], ebx
je 0x4723bc
push edi
push esi
push dword [ebp + 0x7c]
call fcn.0047aaff
lea eax, [ebp - 0xe80]
push eax
lea ecx, [ebp - 0x458]
call fcn.00408f5b
push eax
call fcn.0041ebec
cmp eax, ebx
pop ecx
mov dword [ebp + 0x70], eax
je 0x47277a
push eax
call fcn.0041e507
test eax, eax
pop ecx
jne 0x472771
mov dword [ebp + 0x30], 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 eax, eax
neg eax
mov dword [ebp + 0x68], eax
je 0x472425
push ebx
push 1
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x3c], ebx
jmp 0x472425
mov esi, 0x104
push 0x40
xor eax, eax
cmp dword [ebp + 0x68], ebx
mov byte [ebp - 0x14c], bl
pop ecx
lea edi, [ebp - 0x14b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
je 0x472449
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push ebx
push ebx
push ebx
push ebx
push esi
lea eax, [ebp - 0x14c]
push eax
push ebx
push dword [ebp + 0x70]
call fcn.0041e4e0
mov esi, dword [sym.imp.NSCRT.dll__strnicmp]
push 9
lea eax, [ebp - 0x14c]
push str.freeform_
push eax
call esi
add esp, 0x2c
test eax, eax
je 0x4724b4
push 9
lea eax, [ebp - 0x14c]
push 0x493ce0
push eax
call esi
add esp, 0xc
test eax, eax
je 0x4724b4
lea eax, [ebp - 0x14c]
dec eax
push eax
lea eax, [ebp - 0x14c]
push 0x48a310
push eax
call fcn.00418ae0
add esp, 0xc
inc eax
mov dword [ebp + 0x6c], eax
jmp 0x4724bd
lea eax, [ebp - 0x14c]
mov dword [ebp + 0x6c], eax
push eax
call fcn.0041b1b1
mov esi, dword [sym.imp.NSCRT.dll__stricmp]
mov edi, eax
mov dword [esp], 0x493cdc
push edi
mov dword [ebp + 0x44], edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x472552
push 0x48a30c
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x472552
push 0x48a368
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x472552
push 0x48a374
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x472552
push 0x48a36c
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x472552
push 0x48a364
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x472552
push 0x48a318
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x472552
push 0x48a378
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x472552
push 0x493cd8
push edi
call esi
test eax, eax
pop ecx
pop ecx
jne 0x47274d
push dword [ebp + 0x70]
call fcn.0041eeaf
test eax, eax
pop ecx
jne 0x47274d
push ebx
push dword [ebp + 0x6c]
lea ecx, [ebp + 0x4c]
call fcn.00402d0e
push dword [eax]
lea eax, [ebp - 0xe80]
push dword [ebp + 0x64]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push dword [ebp + 0x4c]
call dword [sym.imp.NSCRT.dll_free]
push dword [ebp + 0x64]
lea eax, [ebp - 0xe80]
push eax
mov dword [ebp + 0x4c], ebx
call fcn.00415610
mov ecx, dword [ebp + 0x68]
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 - 0xe80]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp + 0x58], eax
je 0x47274d
mov byte [ebp - 0x1e80], bl
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x1e7f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x6c], ebx
stosb byte es:[edi], al
mov dword [ebp + 0x5c], 1
xor eax, eax
cmp dword [ebp + 0x6c], ebx
push 0x800
sete al
mov dword [ebp + 0x6c], eax
shl eax, 0xb
lea eax, [ebp + eax - 0x1e80]
push eax
push dword [ebp + 0x70]
mov dword [ebp + 0x50], eax
call fcn.0041e797
mov edi, eax
add esp, 0xc
cmp edi, ebx
jne 0x472633
push dword [ebp + 0x70]
call fcn.0041e9c2
pop ecx
cmp dword [ebp + 0x68], ebx
je 0x472678
push 0xffffffffffffffff
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp edi, ebx
jle 0x47269e
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x38], eax
lea eax, [ebp + 0x30]
push eax
push ebx
push edi
push dword [ebp + 0x50]
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x472673
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x472673
mov dword [ebp + 0x5c], ebx
add dword [ebp + 0x60], edi
jmp 0x472695
cmp edi, ebx
jle 0x47269e
push ebx
lea eax, [ebp + 0x48]
push eax
push edi
push dword [ebp + 0x50]
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x472695
mov dword [ebp + 0x5c], ebx
cmp dword [ebp + 0x5c], ebx
jne 0x4725fb
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x493cdc
push dword [ebp + 0x44]
call esi
test eax, eax
pop ecx
pop ecx
jne 0x47274d
cmp dword [ebp + 0x7c], ebx
jne 0x47274d
push 0x10
mov dword [ebp + 0x54], 1
call dword [sym.imp.NSCRT.dll_malloc]
push 0x10
mov esi, eax
push ebx
push esi
call sub.NSCRT.dll_memset
lea eax, [ebp - 0x14c]
push eax
call dword [sym.imp.NSCRT.dll__strdup]
mov dword [esi], eax
add esp, 0x14
lea eax, [ebp - 0xe80]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edx, eax
cmp edx, ebx
mov dword [esi + 0xc], edx
je 0x47274d
push 9
pop ecx
xor eax, eax
mov byte [ebp + 8], bl
lea edi, [ebp + 9]
rep stosd dword es:[edi], eax
push 0x27
stosw word es:[edi], ax
lea eax, [ebp + 8]
push eax
push 0xffff
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x472742
lea eax, [ebp + 8]
push eax
call dword [sym.imp.NSCRT.dll__strdup]
push dword [esi + 0xc]
mov dword [esi + 8], eax
call fcn.004720c2
pop ecx
pop ecx
push esi
mov ecx, 0x4aeb6c
call fcn.00412937
push dword [ebp + 0x70]
call fcn.0041e549
test eax, eax
pop ecx
je 0x472420
cmp dword [ebp + 0x68], ebx
je 0x472771
cmp dword [ebp + 0x40], ebx
je 0x472771
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp + 0x70]
call fcn.0041ebfa
pop ecx
pop edi
pop esi
mov eax, dword [ebp + 0x54]
pop ebx
add ebp, 0x74
leave
ret