Function at 0x10013e69
Capabilities:
Create directory
Delete file
Get common file path
Hide graphical window
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10084f26
mov eax, dword fs:[0]
push eax
sub esp, 0x298
mov eax, dword [0x100b02c0]
xor eax, esp
mov dword [esp + 0x290], eax
push ebx
push esi
push edi
mov eax, dword [0x100b02c0]
xor eax, esp
push eax
lea eax, [esp + 0x2a8]
mov dword fs:[0], eax
mov edi, ecx
lea esi, [esp + 0x28]
mov dword [esp + 0x1c], edi
mov ebx, edx
call fcn.1002d074
and dword [esp + 0x2b0], 0
push 0
lea esi, [esp + 0x34]
call fcn.1002d125
mov byte [esp + 0x2b0], 1
mov byte [esp + 0x17], 0
test ebx, ebx
je 0x10013f07
cmp dword [ebx + 0x28], 0xd
jge 0x10013f07
push dword [ebx + 0xe0]
lea esi, [edi + 0x418]
call fcn.1002d486
push ebx
mov esi, edi
call fcn.100112df
mov byte [esp + 0x17], 1
jmp 0x100140bc
lea eax, [esp + 0x30]
call fcn.1002d199
test al, al
jne 0x1001421d
mov eax, dword [esp + 0x30]
push 0x10098ca0
call fcn.1003095a
xor ebx, ebx
pop ecx
cmp eax, ebx
je 0x10013f34
mov esi, edi
call fcn.10011420
push ebx
lea eax, [esp + 0x34]
push 0x10098cb8
lea esi, [edi + 0x410]
push eax
call fcn.1003082a
add esp, 0xc
push ebx
lea eax, [esp + 0x34]
push 0x10098cbc
push eax
lea esi, [esp + 0x34]
call fcn.1003082a
add esp, 0xc
mov eax, esi
call fcn.1002d199
test al, al
jne 0x1001407a
push dword [esp + 0x28]
lea esi, [edi + 0x418]
call fcn.1002d486
push ecx
push ecx
lea eax, [edi + 0x410]
mov esi, esp
mov dword [esp + 0x28], esp
push eax
call fcn.1002d0e2
call fcn.1002737a
pop ecx
pop ecx
push eax
mov esi, edi
call fcn.100112df
call fcn.100112be
cmp eax, ebx
je 0x10014073
cmp dword [eax + 0x28], 0xd
jge 0x10013fc2
mov byte [esp + 0x17], 1
jmp 0x10014073
push ebx
push 1
push ecx
mov eax, esp
mov dword [esp + 0x2c], esp
push eax
mov ecx, str._pCurrentOffer__isValid
call fcn.10002a34
push ecx
mov byte [esp + 0x2c0], 2
mov eax, esp
mov dword [esp + 0x48], esp
push eax
mov ecx, str.COCDownloadManager::MainDownloadLoop
call fcn.10002a34
mov byte [esp + 0x2c0], 3
call fcn.1001a54d
push eax
mov byte [esp + 0x2c4], 1
call fcn.1001eb8c
lea eax, [esp + 0x18]
push eax
mov ecx, str.ERROR:_COCDownloadManager::MainDownloadLoop__pCurrentOffer__isValid.
call fcn.10002a34
push ebx
mov byte [esp + 0x2b4], 4
mov eax, dword [esp + 0x1c]
push 1
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov esi, esp
call fcn.10002aac
add eax, 0x10
mov dword [esi], eax
push 1
push ebx
push ecx
mov byte [esp + 0x2c8], 5
call fcn.1001a54d
pop ecx
mov ecx, eax
mov byte [esp + 0x2c4], 4
call fcn.1001f748
mov byte [esp + 0x2b0], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.10002b29
mov eax, edi
call fcn.100112d2
push 1
lea eax, [esp + 0x34]
push 0x10098e04
push eax
lea esi, [esp + 0x34]
call fcn.1003082a
add esp, 0xc
mov eax, esi
call fcn.1002d199
test al, al
jne 0x100140b1
push dword [esp + 0x28]
lea esi, [edi + 0x410]
call fcn.1002d486
mov byte [esp + 0x17], 1
cmp byte [esp + 0x17], 0
je 0x1001421d
mov esi, edi
call fcn.100112be
mov ebx, eax
test ebx, ebx
je 0x100140dc
cmp dword [ebx + 0x28], 0xd
jl 0x10014209
push 1
mov ecx, ebx
call fcn.1001123d
push 0x198
call fcn.1005fc55
pop ecx
mov dword [esp + 0x20], eax
mov byte [esp + 0x2b0], 6
test eax, eax
je 0x10014101
push eax
call fcn.10025ea0
mov ebx, eax
jmp 0x10014103
xor ebx, ebx
push ecx
push ecx
mov byte [esp + 0x2b8], 1
lea eax, [edi + 0x410]
mov esi, esp
mov dword [esp + 0x28], esp
push eax
call fcn.1002d0e2
push 0
lea eax, [edi + 0x418]
push eax
push ebx
call fcn.100287d1
cmp dword [ebx + 0x28], 0xd
jl 0x10014209
cmp byte [ebx + 0x35], 0
je 0x10014202
cmp byte [ebx + 0x4e], 0
jne 0x10014202
push ecx
push ecx
lea eax, [edi + 0x410]
mov esi, esp
mov dword [esp + 0x28], esp
push eax
call fcn.1002d0e2
mov esi, ebx
call fcn.10027054
test al, al
je 0x10014202
push 1
push 7
mov ecx, ebx
call fcn.1002640d
push dword [ebx + 0xe0]
lea eax, [esp + 0x1c]
push eax
call fcn.1000724e
mov byte [esp + 0x2b8], 7
mov eax, dword [esp + 0x20]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10002aac
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x2b4], 8
call fcn.1001a54d
mov byte [esp + 0x2b4], 7
call fcn.1001df1f
mov eax, edi
call fcn.100112d2
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.10002b29
cmp dword [esp + 0x30], 0
je 0x100141ea
push dword [esp + 0x30]
call fcn.10060146
pop ecx
cmp dword [esp + 0x28], 0
je 0x100141fb
push dword [esp + 0x28]
call fcn.10060146
pop ecx
xor eax, eax
jmp 0x100148fb
mov byte [esp + 0x17], 0
jmp 0x1001420f
mov dword [edi + 0x420], ebx
mov eax, edi
call fcn.100112d2
cmp byte [esp + 0x17], 0
jne 0x10014226
mov esi, edi
call fcn.100113ff
jmp 0x100141d9
mov esi, edi
call fcn.100112be
lea esi, [esp + 0x60]
mov ebx, eax
call fcn.1002d074
mov byte [esp + 0x2b0], 9
test ebx, ebx
je 0x10014251
cmp byte [ebx + 0x40], 0
je 0x10014251
mov esi, edi
call fcn.10011420
mov eax, edi
call fcn.100112d2
mov esi, edi
call fcn.10011305
test eax, eax
je 0x1001426c
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx + 4]
push 0x48
call fcn.1005fc55
pop ecx
test eax, eax
je 0x10014283
mov edi, eax
call fcn.1000e7cf
mov edi, eax
jmp 0x10014285
xor edi, edi
mov ebx, edi
call fcn.1001491f
test eax, eax
jne 0x100142c2
mov eax, esi
call fcn.10011319
xor esi, esi
cmp dword [esp + 0x60], esi
je 0x100142a9
push dword [esp + 0x60]
call fcn.10060146
pop ecx
cmp dword [esp + 0x30], esi
je 0x100142b9
push dword [esp + 0x30]
call fcn.10060146
pop ecx
cmp dword [esp + 0x28], esi
jmp 0x100141ef
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call ebx
push 1
mov esi, eax
call ebx
mov ebx, eax
lea eax, [esp + 0x68]
push eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetClientRect]
sub ebx, dword [esp + 0x74]
sub esi, dword [esp + 0x70]
push 0x15
xor eax, eax
push eax
push eax
sub ebx, 0x50
push ebx
sub esi, 0x1e
push esi
push eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ebx, dword [esp + 0x1c]
mov esi, ebx
call fcn.100112be
test eax, eax
je 0x10014330
lea ecx, [eax + 0xe0]
push ecx
lea ecx, [eax + 0x130]
push ecx
add eax, 0x138
push eax
call fcn.10016880
push eax
call fcn.10016c2b
mov eax, ebx
call fcn.100112d2
push 0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, ebx
mov dword [ebx + 0x454], edi
call fcn.10011319
call fcn.100113ff
test al, al
jne 0x10014754
lea esi, [esp + 0x44]
call fcn.1002d61f
mov byte [esp + 0x2b0], 0xa
mov eax, dword [0x100b27b4]
mov ecx, 0x100b27b4
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov esi, ebx
mov byte [esp + 0x2b0], 0xb
call fcn.100112be
mov edi, eax
test edi, edi
je 0x10014468
lea eax, [edi + 0xf8]
lea esi, [esp + 0x44]
call fcn.1002d91d
lea eax, [esp + 0x94]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x10014456
push dword [edi + 0x140]
lea eax, [esp + 0x1c]
push eax
call fcn.1000724e
mov byte [esp + 0x2b8], 0xc
mov eax, dword [esp + 0x20]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.10002aac
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x3c]
push eax
call fcn.10007c00
pop ecx
pop ecx
lea edi, [esp + 0x1c]
mov byte [esp + 0x2b0], 0xd
call fcn.100023e1
mov byte [esp + 0x2b0], 0xc
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
call fcn.10002b29
push 0
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x10098efc
mov eax, edi
push eax
call fcn.1000407f
mov byte [esp + 0x2b0], 0xb
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.10002b29
jmp 0x10014468
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.10002a16
mov eax, ebx
call fcn.100112d2
push dword [esp + 0x44]
lea eax, [esp + 0x20]
push eax
call fcn.1000407f
push 0x10098f00
lea eax, [esp + 0x20]
push eax
call fcn.1000407f
mov edi, dword [sym.imp.USER32.dll_LoadImageW]
push 0x50
xor esi, esi
push esi
push esi
push 1
push dword [esp + 0x2c]
push esi
call edi
mov dword [ebx + 0x42c], eax
cmp eax, esi
jne 0x1001469b
mov esi, ebx
call fcn.100112be
lea esi, [esp + 0x3c]
mov dword [esp + 0x18], eax
call fcn.1002d074
lea esi, [esp + 0x58]
mov byte [esp + 0x2b0], 0xe
call fcn.1002d074
lea esi, [esp + 0x4c]
mov byte [esp + 0x2b0], 0xf
call fcn.1002d074
mov byte [esp + 0x2b0], 0x10
cmp dword [esp + 0x18], 0
je 0x1001451a
mov eax, dword [esp + 0x18]
push dword [eax + 0x130]
lea esi, [esp + 0x5c]
call fcn.1002d486
mov eax, dword [esp + 0x18]
push dword [eax + 0x118]
lea esi, [esp + 0x50]
call fcn.1002d486
mov eax, ebx
call fcn.100112d2
lea eax, [esp + 0x3c]
push eax
xor esi, esi
push esi
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x5c]
call fcn.1002ed2e
add esp, 0x14
cmp eax, esi
jne 0x100145b6
push esi
push 0x80
push 2
push esi
push esi
push 0x1f01ff
push dword [esp + 0x34]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x18], eax
cmp eax, esi
je 0x1001466b
push esi
push esi
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push esi
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x40]
push dword [esp + 0x2c]
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x50
push esi
push esi
push 1
push dword [esp + 0x2c]
push esi
call edi
push dword [esp + 0x1c]
mov dword [ebx + 0x42c], eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x1001466b
push str._r_nIcon_get_URL:
lea esi, [esp + 0x40]
call fcn.1002d4f1
push dword [esp + 0x4c]
call fcn.1002d4f1
push str._r_nIcon_get_Save_Path:
call fcn.1002d4f1
mov eax, dword [esp + 0x1c]
push 0xfde9
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x5c], esp
mov esi, esp
call fcn.10002aac
add eax, 0x10
mov dword [esi], eax
call fcn.100070c9
pop ecx
pop ecx
mov edi, eax
push edi
lea esi, [esp + 0x40]
call fcn.1002d4f1
test edi, edi
je 0x10014612
push edi
call fcn.10060146
pop ecx
push ecx
push ecx
lea eax, [esp + 0x44]
mov esi, esp
mov dword [esp + 0x5c], esp
push eax
call fcn.1002d0e2
push ecx
push ecx
mov byte [esp + 0x2c0], 0x11
mov esi, esp
mov dword [esp + 0x30], esp
push str.Error_int_MainLoop_OCGetUrlData
call fcn.1002d08b
push ecx
push ecx
mov byte [esp + 0x2c8], 0x12
mov esi, esp
mov dword [esp + 0x50], esp
push dword [esp + 0x70]
call fcn.1002d08b
push 6
mov byte [esp + 0x2cc], 0x10
call fcn.10025c21
add esp, 0x1c
xor esi, esi
cmp dword [esp + 0x4c], esi
je 0x1001467b
push dword [esp + 0x4c]
call fcn.10060146
pop ecx
cmp dword [esp + 0x58], esi
je 0x1001468b
push dword [esp + 0x58]
call fcn.10060146
pop ecx
cmp dword [esp + 0x3c], esi
je 0x1001469b
push dword [esp + 0x3c]
call fcn.10060146
pop ecx
cmp dword [ebx + 0x42c], 0
mov eax, dword [0x100b2774]
mov dword [esp + 0x20], eax
jne 0x100146bc
push 0x66
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [ebx + 0x42c], eax
mov esi, ebx
call fcn.10011305
mov esi, eax
xor edi, edi
cmp esi, edi
je 0x10014729
push dword [ebx + 0x42c]
push edi
push 0x80
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebx + 0x42c]
mov eax, dword [esi + 4]
push dword [esp + 0x24]
mov ecx, ebx
call fcn.10030336
mov eax, dword [ebx + 0x3d0]
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
push 1
push 0x9c4a
push eax
call esi
mov eax, dword [ebx + 0x3d0]
push edi
push 0x9c4d
push eax
call esi
mov eax, dword [ebx + 0x3d0]
push 1
push 0x9c4e
push eax
call esi
mov eax, ebx
call fcn.10011319
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.10002b29
mov byte [esp + 0x2b0], 9
cmp dword [esp + 0x44], edi
je 0x10014754
push dword [esp + 0x44]
call fcn.10060146
pop ecx
lea esi, [esp + 0x44]
call fcn.1002d61f
mov esi, ebx
mov byte [esp + 0x2b0], 0x13
mov byte [esp + 0x26], 0
mov byte [esp + 0x17], 0
mov byte [esp + 0x25], 0
mov byte [esp + 0x27], 0
call fcn.100112be
mov esi, eax
test esi, esi
je 0x100147b2
lea eax, [esi + 0x100]
push eax
lea ecx, [esp + 0x48]
call fcn.1002d8df
mov al, byte [esi + 0x42]
mov byte [esp + 0x26], al
mov al, byte [esi + 0x3c]
mov byte [esp + 0x17], al
mov al, byte [esi + 0x41]
mov byte [esp + 0x25], al
mov al, byte [esi + 0x37]
mov byte [esp + 0x27], al
mov eax, ebx
call fcn.100112d2
cmp byte [esp + 0x26], 0
je 0x100147c7
mov esi, ebx
call fcn.100303eb
mov esi, ebx
call fcn.10011305
mov edi, eax
test edi, edi
je 0x10014831
push edi
call fcn.1000ea0e
lea esi, [ebx + 0x51c]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push esi
mov byte [ebx + 0x430], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [esp + 0x27], 0
je 0x10014831
mov esi, ebx
call fcn.100113ff
test al, al
jne 0x10014818
cmp byte [esp + 0x17], al
jne 0x1001481f
push 5
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [esp + 0x17], 0
je 0x10014831
cmp byte [esp + 0x25], 0
je 0x10014831
push 2
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, ebx
call fcn.10011319
push ebx
call fcn.10013659
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
jmp 0x1001485c
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
xor eax, eax
push eax
push eax
push eax
lea eax, [esp + 0x84]
push eax
call esi
test eax, eax
jne 0x10014846
cmp dword [ebx + 0x44c], 1
ja 0x10014893
mov esi, ebx
call fcn.100113ff
test al, al
jne 0x10014893
push 0x1008fcc3
lea esi, [ebx + 0x410]
call fcn.1002d486
add ebx, 0x440
mov eax, dword [ebx]
xor edi, edi
cmp eax, edi
je 0x100148b2
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebx], edi
mov esi, dword [esp + 0x80]
cmp dword [esp + 0x44], edi
je 0x100148c9
push dword [esp + 0x44]
call fcn.10060146
pop ecx
cmp dword [esp + 0x60], edi
je 0x100148d9
push dword [esp + 0x60]
call fcn.10060146
pop ecx
cmp dword [esp + 0x30], edi
je 0x100148e9
push dword [esp + 0x30]
call fcn.10060146
pop ecx
cmp dword [esp + 0x28], edi
je 0x100148f9
push dword [esp + 0x28]
call fcn.10060146
pop ecx
mov eax, esi
mov ecx, dword [esp + 0x2a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x290]
xor ecx, esp
call fcn.1005fc2b
mov esp, ebp
pop ebp
ret