Function at 0x10011c11
Capabilities:
Check mutex on windows
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 0x1007f40c
mov eax, dword fs:[0]
push eax
sub esp, 0x298
mov eax, dword [0x100a82b0]
xor eax, esp
mov dword [esp + 0x290], eax
push ebx
push esi
push edi
mov eax, dword [0x100a82b0]
xor eax, esp
push eax
lea eax, [esp + 0x2a8]
mov dword fs:[0], eax
mov ebx, ecx
lea esi, [esp + 0x28]
mov dword [esp + 0x1c], ebx
mov edi, edx
call fcn.10026f5a
and dword [esp + 0x2b0], 0
push 0
lea esi, [esp + 0x34]
call fcn.1002700b
mov byte [esp + 0x2b0], 1
mov byte [esp + 0x17], 0
test edi, edi
je 0x10011caa
cmp dword [edi + 0x18], 0xd
jge 0x10011caa
push dword [edi + 0xd0]
lea esi, [ebx + 0x408]
call fcn.10027362
push edi
mov esi, ebx
call fcn.1000ebea
jmp 0x10011e4d
lea eax, [esp + 0x30]
call fcn.10027071
test al, al
jne 0x10011e52
mov eax, dword [esp + 0x30]
push 0x100925a4
call fcn.1002a7d0
pop ecx
test eax, eax
je 0x10011cd5
mov esi, ebx
call fcn.1000ed1e
push 0
lea eax, [esp + 0x34]
lea edi, [ebx + 0x400]
push 0x100925bc
push eax
mov esi, edi
call fcn.1002a69c
add esp, 0xc
push 0
lea eax, [esp + 0x34]
push 0x100925c0
push eax
lea esi, [esp + 0x34]
call fcn.1002a69c
add esp, 0xc
mov eax, esi
call fcn.10027071
test al, al
jne 0x10011e1b
push dword [esp + 0x28]
lea esi, [ebx + 0x408]
call fcn.10027362
push ecx
push ecx
mov esi, esp
mov dword [esp + 0x28], esp
push edi
call fcn.10026fc8
call fcn.10021be5
pop ecx
pop ecx
push eax
mov esi, ebx
call fcn.1000ebea
call fcn.1000ebc9
test eax, eax
je 0x10011e14
cmp dword [eax + 0x18], 0xd
jge 0x10011d61
mov byte [esp + 0x17], 1
jmp 0x10011e14
xor esi, esi
push esi
push 1
push ecx
mov eax, esp
mov dword [esp + 0x2c], esp
push eax
mov edi, str._pCurrentOffer__isValid
call fcn.100022a8
push ecx
mov byte [esp + 0x2c0], 2
mov eax, esp
mov dword [esp + 0x48], esp
push eax
mov edi, 0x10092630
call fcn.100022a8
mov byte [esp + 0x2c0], 3
call fcn.10016053
push eax
mov byte [esp + 0x2c4], 1
call fcn.1001a3fb
lea eax, [esp + 0x18]
push eax
mov edi, str.ERROR:_COCDownloadManager::MainDownloadLoop__pCurrentOffer__isValid.
call fcn.100022a8
push esi
mov byte [esp + 0x2b4], 4
mov eax, dword [esp + 0x1c]
push 1
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov edi, esp
call fcn.1000296d
add eax, 0x10
mov dword [edi], eax
push 1
push esi
push ecx
mov byte [esp + 0x2c8], 5
call fcn.10016053
pop ecx
mov ecx, eax
mov byte [esp + 0x2c4], 4
call fcn.1001ae54
mov byte [esp + 0x2b0], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.100029ea
mov eax, ebx
call fcn.1000ebdd
push 1
lea eax, [esp + 0x34]
push 0x1009262c
push eax
lea esi, [esp + 0x34]
call fcn.1002a69c
add esp, 0xc
mov eax, esi
call fcn.10027071
test al, al
jne 0x10011e52
push dword [esp + 0x28]
lea esi, [ebx + 0x400]
call fcn.10027362
mov byte [esp + 0x17], 1
push 0x10092730
push 1
xor esi, esi
push esi
xor edi, edi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebx + 0x430], eax
cmp eax, esi
je 0x10011e88
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x10011e88
push 0x7530
push dword [ebx + 0x430]
jmp 0x10011eb2
cmp dword [ebx + 0x430], esi
jne 0x10011fbe
push str.GlobalOCMGR6CE63A0B6F2F4FE9924A79CB455EF501
push 1
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
push 0x7530
mov dword [ebx + 0x430], eax
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edi, eax
cmp dword [ebx + 0x430], esi
jne 0x10011fbe
lea esi, [esp + 0x4c]
call fcn.10026f5a
mov esi, ebx
mov byte [esp + 0x2b0], 6
call fcn.1000ebc9
test eax, eax
je 0x10011ef1
push dword [eax + 0x120]
lea esi, [esp + 0x50]
call fcn.10027362
mov eax, ebx
call fcn.1000ebdd
mov eax, dword [0x100aa3bc]
mov ecx, 0x100aa3bc
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
push edi
push str.Error_int_MainLoop_CreateMutex_failed._Result_was__d
lea eax, [esp + 0x20]
mov byte [esp + 0x2b8], 7
call fcn.100027be
mov esi, dword [esp + 0x20]
pop ecx
pop ecx
push 0
push 1
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x2c], esp
mov edi, esp
call fcn.1000296d
add eax, 0x10
mov dword [edi], eax
push 1
push 0
push ecx
mov byte [esp + 0x2c8], 8
call fcn.10016053
pop ecx
mov ecx, eax
mov byte [esp + 0x2c4], 7
call fcn.1001ae54
mov eax, esi
call fcn.100029ea
mov byte [esp + 0x2b0], 1
cmp dword [esp + 0x4c], 0
je 0x10011f85
push dword [esp + 0x4c]
call fcn.1005a1d0
pop ecx
mov byte [esp + 0x2b0], 0
cmp dword [esp + 0x30], 0
je 0x10011f9e
push dword [esp + 0x30]
call fcn.1005a1d0
pop ecx
or dword [esp + 0x2b0], 0xffffffff
cmp dword [esp + 0x28], 0
je 0x10011fb7
push dword [esp + 0x28]
call fcn.1005a1d0
pop ecx
xor eax, eax
jmp 0x10012855
cmp byte [esp + 0x17], 0
je 0x100120fe
mov esi, ebx
call fcn.1000ebc9
mov edi, eax
test edi, edi
je 0x10011fe6
cmp dword [edi + 0x18], 0xd
jl 0x100120ea
push edi
call fcn.1000eb53
push 0x188
call fcn.10059e60
pop ecx
mov dword [esp + 0x20], eax
mov byte [esp + 0x2b0], 9
test eax, eax
je 0x1001200b
push eax
call fcn.100206e6
mov edi, eax
jmp 0x1001200d
xor edi, edi
push ecx
push ecx
mov byte [esp + 0x2b8], 1
lea eax, [ebx + 0x400]
mov esi, esp
mov dword [esp + 0x28], esp
push eax
call fcn.10026fc8
push 0
lea eax, [ebx + 0x408]
push eax
push edi
call fcn.10022ffd
cmp dword [edi + 0x18], 0xd
jl 0x100120ea
cmp byte [edi + 0x25], 0
je 0x100120e3
cmp byte [edi + 0x3e], 0
jne 0x100120e3
push ecx
push ecx
lea eax, [ebx + 0x400]
mov esi, esp
mov dword [esp + 0x28], esp
push eax
call fcn.10026fc8
mov esi, edi
call fcn.100218ed
test al, al
je 0x100120e3
push 1
push 7
push edi
call fcn.10020c3d
push dword [edi + 0xd0]
lea eax, [esp + 0x1c]
push eax
call fcn.10006f91
mov byte [esp + 0x2b8], 0xa
mov eax, dword [esp + 0x20]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.1000296d
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x2b4], 0xb
call fcn.10016053
mov byte [esp + 0x2b4], 0xa
call fcn.1001969e
mov eax, ebx
call fcn.1000ebdd
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.100029ea
jmp 0x10011f85
mov byte [esp + 0x17], 0
jmp 0x100120f0
mov dword [ebx + 0x410], edi
mov eax, ebx
call fcn.1000ebdd
cmp byte [esp + 0x17], 0
jne 0x10012118
mov esi, ebx
call fcn.1000ecfd
test al, al
jne 0x10011f85
push ebx
call fcn.1001133a
jmp 0x10011f85
mov esi, ebx
call fcn.1000ebc9
lea esi, [esp + 0x4c]
mov edi, eax
call fcn.10026f5a
mov byte [esp + 0x2b0], 0xc
test edi, edi
je 0x10012143
cmp byte [edi + 0x30], 0
je 0x10012143
mov esi, ebx
call fcn.1000ed1e
mov eax, ebx
call fcn.1000ebdd
mov esi, ebx
call fcn.1000ec10
test eax, eax
je 0x1001215e
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx + 4]
push 0x28
call fcn.10059e60
pop ecx
test eax, eax
je 0x10012188
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax], vtable.COCDlMgrDlg.0
mov dword [eax + 0x20], ecx
mov byte [eax + 0x24], cl
mov edi, eax
jmp 0x1001218a
xor edi, edi
mov ebx, edi
call fcn.10012879
test eax, eax
jne 0x100121de
mov eax, esi
call fcn.1000ec24
xor ebx, ebx
mov byte [esp + 0x2b0], 1
cmp dword [esp + 0x4c], ebx
je 0x100121b6
push dword [esp + 0x4c]
call fcn.1005a1d0
pop ecx
mov byte [esp + 0x2b0], bl
cmp dword [esp + 0x30], ebx
je 0x100121cd
push dword [esp + 0x30]
call fcn.1005a1d0
pop ecx
or dword [esp + 0x2b0], 0xffffffff
cmp dword [esp + 0x28], ebx
jmp 0x10011fab
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.1000ebc9
test eax, eax
je 0x1001224c
lea ecx, [eax + 0xd0]
push ecx
lea ecx, [eax + 0x120]
push ecx
add eax, 0x128
push eax
call fcn.1001419c
push eax
call fcn.10014574
mov eax, ebx
call fcn.1000ebdd
push 0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, ebx
mov dword [ebx + 0x444], edi
call fcn.1000ec24
call fcn.1000ecfd
test al, al
jne 0x10012688
lea esi, [esp + 0x44]
call fcn.10027571
mov byte [esp + 0x2b0], 0xd
mov eax, dword [0x100aa3bc]
mov ecx, 0x100aa3bc
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov esi, ebx
mov byte [esp + 0x2b0], 0xe
call fcn.1000ebc9
mov edi, eax
test edi, edi
je 0x10012384
lea eax, [edi + 0xe8]
lea esi, [esp + 0x44]
call fcn.10027881
lea eax, [esp + 0x94]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x10012372
push dword [edi + 0x130]
lea eax, [esp + 0x1c]
push eax
call fcn.10006f91
mov byte [esp + 0x2b8], 0xf
mov eax, dword [esp + 0x20]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
call fcn.1000296d
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x3c]
push eax
call fcn.1000795a
pop ecx
pop ecx
lea edi, [esp + 0x1c]
mov byte [esp + 0x2b0], 0x10
call fcn.100022f6
mov byte [esp + 0x2b0], 0xf
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
call fcn.100029ea
push 0
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x100929ac
mov eax, edi
push eax
call fcn.100040d1
mov byte [esp + 0x2b0], 0xe
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.100029ea
jmp 0x10012384
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.100027a0
mov eax, ebx
call fcn.1000ebdd
push dword [esp + 0x44]
lea eax, [esp + 0x20]
push eax
call fcn.100040d1
push 0x100929b0
lea eax, [esp + 0x20]
push eax
call fcn.100040d1
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 + 0x41c], eax
cmp eax, esi
jne 0x100125cf
mov esi, ebx
call fcn.1000ebc9
lea esi, [esp + 0x3c]
mov dword [esp + 0x18], eax
call fcn.10026f5a
lea esi, [esp + 0x60]
mov byte [esp + 0x2b0], 0x11
call fcn.10026f5a
lea esi, [esp + 0x54]
mov byte [esp + 0x2b0], 0x12
call fcn.10026f5a
mov byte [esp + 0x2b0], 0x13
cmp dword [esp + 0x18], 0
je 0x10012436
mov eax, dword [esp + 0x18]
push dword [eax + 0x120]
lea esi, [esp + 0x64]
call fcn.10027362
mov eax, dword [esp + 0x18]
push dword [eax + 0x108]
lea esi, [esp + 0x58]
call fcn.10027362
mov eax, ebx
call fcn.1000ebdd
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 + 0x64]
call fcn.100281c3
add esp, 0x14
cmp eax, esi
jne 0x100124d2
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 0x10012587
push esi
push esi
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push esi
lea eax, [esp + 0x60]
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 + 0x41c], eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x10012587
push str._r_nIcon_get_URL:
lea esi, [esp + 0x40]
call fcn.10027443
push dword [esp + 0x54]
call fcn.10027443
push str._r_nIcon_get_Save_Path:
call fcn.10027443
mov eax, dword [esp + 0x1c]
push 0xfde9
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x64], esp
mov esi, esp
call fcn.1000296d
add eax, 0x10
mov dword [esi], eax
call fcn.10006dfa
pop ecx
pop ecx
mov edi, eax
push edi
lea esi, [esp + 0x40]
call fcn.10027443
test edi, edi
je 0x1001252e
push edi
call fcn.1005a1d0
pop ecx
push ecx
push ecx
lea eax, [esp + 0x44]
mov esi, esp
mov dword [esp + 0x64], esp
push eax
call fcn.10026fc8
push ecx
push ecx
mov byte [esp + 0x2c0], 0x14
mov esi, esp
mov dword [esp + 0x30], esp
push str.Error_int_MainLoop_OCGetUrlData
call fcn.10026f71
push ecx
push ecx
mov byte [esp + 0x2c8], 0x15
mov esi, esp
mov dword [esp + 0x50], esp
push dword [esp + 0x78]
call fcn.10026f71
push 6
mov byte [esp + 0x2cc], 0x13
call fcn.10020447
add esp, 0x1c
xor esi, esi
mov byte [esp + 0x2b0], 0x12
cmp dword [esp + 0x54], esi
je 0x1001259f
push dword [esp + 0x54]
call fcn.1005a1d0
pop ecx
mov byte [esp + 0x2b0], 0x11
cmp dword [esp + 0x60], esi
je 0x100125b7
push dword [esp + 0x60]
call fcn.1005a1d0
pop ecx
mov byte [esp + 0x2b0], 0xe
cmp dword [esp + 0x3c], esi
je 0x100125cf
push dword [esp + 0x3c]
call fcn.1005a1d0
pop ecx
cmp dword [ebx + 0x41c], 0
mov eax, dword [0x100aa3e8]
mov dword [esp + 0x20], eax
jne 0x100125f0
push 0x66
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [ebx + 0x41c], eax
mov esi, ebx
call fcn.1000ec10
mov esi, eax
xor edi, edi
cmp esi, edi
je 0x1001265d
push dword [ebx + 0x41c]
push edi
push 0x80
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebx + 0x41c]
mov eax, dword [esi + 4]
push dword [esp + 0x24]
mov ecx, ebx
call fcn.10029d80
mov eax, dword [ebx + 0x3bc]
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
push 1
push 0x9c4a
push eax
call esi
mov eax, dword [ebx + 0x3bc]
push edi
push 0x9c4d
push eax
call esi
mov eax, dword [ebx + 0x3bc]
push 1
push 0x9c4e
push eax
call esi
mov eax, ebx
call fcn.1000ec24
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.100029ea
mov byte [esp + 0x2b0], 0xc
cmp dword [esp + 0x44], edi
je 0x10012688
push dword [esp + 0x44]
call fcn.1005a1d0
pop ecx
lea esi, [esp + 0x44]
call fcn.10027571
mov esi, ebx
mov byte [esp + 0x2b0], 0x16
mov byte [esp + 0x26], 0
mov byte [esp + 0x17], 0
mov byte [esp + 0x25], 0
mov byte [esp + 0x27], 0
call fcn.1000ebc9
mov esi, eax
test esi, esi
je 0x100126e6
lea eax, [esi + 0xf0]
push eax
lea ecx, [esp + 0x48]
call fcn.1002783f
mov al, byte [esi + 0x32]
mov byte [esp + 0x26], al
mov al, byte [esi + 0x2c]
mov byte [esp + 0x17], al
mov al, byte [esi + 0x31]
mov byte [esp + 0x25], al
mov al, byte [esi + 0x27]
mov byte [esp + 0x27], al
mov eax, ebx
call fcn.1000ebdd
cmp byte [esp + 0x26], 0
je 0x100126fb
mov esi, ebx
call fcn.10029e35
mov esi, ebx
call fcn.1000ec10
mov edi, eax
test edi, edi
je 0x10012765
push edi
call fcn.1000b8af
lea esi, [ebx + 0x524]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push esi
mov byte [ebx + 0x420], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [esp + 0x27], 0
je 0x10012765
mov esi, ebx
call fcn.1000ecfd
test al, al
jne 0x1001274c
cmp byte [esp + 0x17], al
jne 0x10012753
push 5
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [esp + 0x17], 0
je 0x10012765
cmp byte [esp + 0x25], 0
je 0x10012765
push 2
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, ebx
call fcn.1000ec24
push ebx
call fcn.10011075
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
jmp 0x10012790
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 0x1001277a
cmp dword [ebx + 0x43c], 1
ja 0x100127c7
mov esi, ebx
call fcn.1000ecfd
test al, al
jne 0x100127c7
lea esi, [ebx + 0x400]
push 0x10089c63
call fcn.10027362
mov eax, dword [ebx + 0x430]
xor edi, edi
cmp eax, edi
je 0x100127ec
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [ebx + 0x430]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebx + 0x430], edi
mov esi, dword [esp + 0x80]
mov byte [esp + 0x2b0], 0xc
cmp dword [esp + 0x44], edi
je 0x1001280b
push dword [esp + 0x44]
call fcn.1005a1d0
pop ecx
mov byte [esp + 0x2b0], 1
cmp dword [esp + 0x4c], edi
je 0x10012823
push dword [esp + 0x4c]
call fcn.1005a1d0
pop ecx
mov byte [esp + 0x2b0], 0
cmp dword [esp + 0x30], edi
je 0x1001283b
push dword [esp + 0x30]
call fcn.1005a1d0
pop ecx
or dword [esp + 0x2b0], 0xffffffff
cmp dword [esp + 0x28], edi
je 0x10012853
push dword [esp + 0x28]
call fcn.1005a1d0
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.10059ccb
mov esp, ebp
pop ebp
ret