Function at 0x4412ff
Capabilities:
Create directory
Get common file path
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x211c
call fcn.004990f0
xor eax, eax
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 8], eax
cmp word [0x503f90], ax
jne 0x441334
test ebx, ebx
je 0x441327
cmp word [ebx], ax
jne 0x441334
xor eax, eax
mov word [0x5043a0], ax
jmp 0x44191f
push esi
push edi
push 0x208
push eax
lea eax, [ebp - 0x4ec]
test ebx, ebx
mov esi, 0x503f90
push eax
cmovne esi, ebx
call fcn.0049a3b0
add esp, 0xc
mov edi, 0x503568
mov dword [ebp - 0x10], edi
push 0x4d2f7c
push esi
call fcn.00476738
pop ecx
push eax
call fcn.0049e71a
pop ecx
pop ecx
test eax, eax
je 0x4413e3
push 0x4ccb6c
push esi
call fcn.00476738
pop ecx
push eax
call fcn.0049e71a
pop ecx
pop ecx
test eax, eax
je 0x4413e3
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
jne 0x4413b5
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x4413b5
push esi
push 0x104
push 0x5043a0
call fcn.0040c4d6
jmp 0x4413c6
push esi
push 0x503b80
push 0x5043a0
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push 1
call fcn.00440c01
pop ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 8], eax
test ecx, ecx
je 0x44191d
mov dword [ecx], eax
jmp 0x44191d
push 0x820
lea eax, [ebp - 0xd0c]
push 0
push eax
call fcn.0049a3b0
push 0x4e
lea eax, [ebp - 0x8c]
push 0
push eax
call fcn.0049a3b0
add esp, 0x18
test ebx, ebx
je 0x44145e
push 0x208
lea eax, [ebp - 0x2e4]
push 0
push eax
call fcn.0049a3b0
add esp, 0xc
lea eax, [ebp - 0x2e4]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x4ec]
push eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push 0x4cda78
lea eax, [ebp - 0x2e4]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea edi, [ebp - 0x4ec]
mov dword [ebp - 0x10], edi
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x531ea8
push str.lang_clean_up_ws
lea eax, [ebp - 0x8c]
push 0x4e
push eax
call fcn.00405a8d
add esp, 0x10
test ebx, ebx
jne 0x4414a5
push edi
push 0x104
push 0x5043a0
call fcn.0040c4d6
lea eax, [ebp - 0x8c]
push edi
push eax
call fcn.004120f3
pop ecx
pop ecx
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
jne 0x4414cf
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x4414cf
push esi
push 0x410
lea eax, [ebp - 0xd0c]
push eax
call fcn.0040c4d6
jmp 0x4414e2
push esi
push 0x503b80
lea eax, [ebp - 0xd0c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
test ebx, ebx
je 0x4414f2
push edi
push 0x104
push ebx
call fcn.0040c4d6
lea eax, [ebp - 0xd0c]
push eax
lea ecx, [ebp - 0x111c]
call fcn.0040dbab
push eax
call fcn.00494c50
mov dword [ebp - 0xc], eax
pop ecx
test eax, eax
je 0x44191a
push eax
call fcn.00494b40
pop ecx
test eax, eax
jne 0x441911
lea edi, [ebp - 0x3c]
stosd dword es:[edi], eax
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]
mov ecx, SysReAllocStringLen
cmp eax, ecx
sbb esi, esi
neg esi
mov dword [ebp - 4], esi
cmp eax, ecx
jae 0x441559
xor eax, eax
push eax
push 1
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateEventW]
and dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], eax
mov edi, 0x104
lea eax, [ebp - 0x1e0]
push edi
push 0
push eax
call fcn.0049a3b0
add esp, 0xc
test esi, esi
je 0x44157d
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_SetEvent]
xor ecx, ecx
lea eax, [ebp - 0x1e0]
push ecx
push ecx
push ecx
push ecx
push edi
push eax
push ecx
push dword [ebp - 0xc]
call fcn.00494a80
push 9
lea eax, [ebp - 0x1e0]
push 0x4d2f84
push eax
call fcn.004aa0b6
add esp, 0x2c
test eax, eax
je 0x4415e9
push 9
lea eax, [ebp - 0x1e0]
push str.freeform_
push eax
call fcn.004aa0b6
add esp, 0xc
test eax, eax
je 0x4415e9
lea eax, [ebp - 0x1e0]
dec eax
push eax
lea eax, [ebp - 0x1e0]
push 0x4d2f9c
push eax
call fcn.004768db
add esp, 0xc
lea esi, [eax + 1]
jmp 0x4415ef
lea esi, [ebp - 0x1e0]
push esi
call fcn.00476703
mov edi, eax
mov dword [esp], 0x4d2fa0
push edi
mov dword [ebp - 0x28], edi
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
je 0x4416b2
push 0x4d2fa4
push edi
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
je 0x4416b2
push 0x4d2fa8
push edi
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
je 0x4416b2
push 0x4d2fac
push edi
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
je 0x4416b2
push 0x4d2fb0
push edi
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
je 0x4416b2
push 0x4d2fb4
push edi
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
je 0x4416b2
push 0x4d2fb8
push edi
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
je 0x4416b2
push 0x4d2fbc
push edi
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
je 0x4416b2
push 0x4d2fc0
push edi
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
je 0x4416b2
push 0x4d2fc4
push edi
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
jne 0x4418ea
push dword [ebp - 0xc]
call fcn.00494c70
pop ecx
test eax, eax
jne 0x4418ea
push eax
push esi
call fcn.00405018
pop ecx
pop ecx
mov esi, eax
lea eax, [ebp - 0xd0c]
push esi
push dword [ebp - 0x10]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push esi
call fcn.004a1b5f
push dword [ebp - 0x10]
lea eax, [ebp - 0xd0c]
push eax
call fcn.00472383
mov esi, dword [ebp - 4]
add esp, 0xc
xor ecx, ecx
mov eax, esi
shl eax, 0x1e
or eax, 0x80
push ecx
push eax
push 2
push ecx
push ecx
push 0x40000000
lea eax, [ebp - 0xd0c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x18], eax
cmp eax, 0xffffffff
je 0x4418ed
and dword [ebp - 0x14], 0
lea eax, [ebp - 0x211c]
push 0x1000
xor esi, esi
push esi
push eax
call fcn.0049a3b0
mov ebx, dword [ebp - 0xc]
xor edi, edi
add esp, 0xc
inc edi
and dword [ebp - 0x20], 0
lea ecx, [ebp - 0x211c]
xor esi, 1
mov eax, esi
mov dword [ebp - 0x24], esi
shl eax, 0xb
add eax, ecx
push 0x800
push eax
push ebx
mov dword [ebp - 0x1c], eax
call fcn.00495590
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x441781
push ebx
call fcn.004949d0
pop ecx
cmp dword [ebp - 4], 0
je 0x4417c8
push 0xffffffffffffffff
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test esi, esi
jle 0x4417ee
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x3c]
push eax
push 0
push esi
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x4417c3
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
cmp eax, 0x3e5
cmovne edi, ecx
add dword [ebp - 0x14], esi
jmp 0x4417e3
test esi, esi
jle 0x4417ee
push 0
lea eax, [ebp - 0x20]
push eax
push esi
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4417ee
mov esi, dword [ebp - 0x24]
test edi, edi
jne 0x44174b
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [ebp - 0x28]
push 0x4d2fa0
push edi
call fcn.004a194c
mov ebx, dword [ebp + 8]
pop ecx
pop ecx
test eax, eax
jne 0x4418ea
test ebx, ebx
jne 0x4418ea
xor eax, eax
inc eax
push 0x14
push eax
mov dword [ebp - 8], eax
call fcn.004a1b54
mov esi, eax
lea eax, [ebp - 0x1e0]
push ebx
push eax
call fcn.00405018
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
add esp, 0x10
mov dword [esi], eax
push str.omBrowser.lng
push eax
call edi
test eax, eax
je 0x44185f
push str.ml_online.lng
push dword [esi]
call edi
test eax, eax
je 0x44185f
xor cl, cl
jmp 0x441861
mov cl, 1
push 0x22
xor eax, eax
test cl, cl
pop edx
cmove eax, edx
push eax
push 0
lea eax, [ebp - 0xd0c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
mov dword [esi + 0x10], edi
test edi, edi
jne 0x44189a
lea eax, [ebp - 0xd0c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
mov dword [esi + 0x10], eax
test edi, edi
je 0x4418ea
push 0x4e
lea eax, [ebp - 0xdc]
push 0
push eax
call fcn.0049a3b0
add esp, 0xc
lea eax, [ebp - 0xdc]
push 0x27
push eax
push 0xffff
push edi
call dword [sym.imp.USER32.dll_LoadStringW]
test eax, eax
je 0x4418df
lea eax, [ebp - 0xdc]
push eax
call fcn.004a1860
push dword [esi + 0x10]
mov dword [esi + 4], eax
call fcn.004401b8
pop ecx
pop ecx
push esi
mov ecx, 0x50bc18
call fcn.00406a4d
mov esi, dword [ebp - 4]
push dword [ebp - 0xc]
call fcn.00494ba0
pop ecx
test eax, eax
je 0x441559
test esi, esi
je 0x441911
cmp dword [ebp - 0x2c], 0
je 0x441911
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xc]
call fcn.00494990
pop ecx
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret