Function at 0x4105a4
Capabilities:
Create directory
Create process on windows
Create thread

Disassembly:
push esi
mov esi, ecx
lea ecx, [esi + 0x364]
call fcn.00431578
test eax, eax
je 0x4105be
mov ecx, esi
pop esi
jmp 0x412812
lea ecx, [esi + 0x454]
call fcn.00431578
test eax, eax
je 0x4105d5
mov ecx, esi
pop esi
jmp 0x410cd2
pop esi
ret
mov eax, 0x43cc62
call fcn.0041aa98
sub esp, 0xc
push ebx
push esi
mov esi, ecx
cmp dword [esi + 0x544], 3
push edi
jne 0x410d8b
call fcn.0043990e
mov ecx, dword [eax + 4]
call fcn.004350a7
mov ecx, dword [esi + 0x1070]
mov eax, dword [esi + 0x1008]
and dword [ebp - 4], 0
test eax, eax
mov ebx, dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 0x10], ecx
mov ecx, dword [esi + 0x10d8]
mov dword [ebp - 0x14], ecx
mov edi, 0x43ee58
je 0x410d3d
mov eax, dword [esi + 0x11d8]
push 5
push edi
push edi
push eax
push str.open
push 0
call ebx
cmp dword [ebp - 0x10], 0
je 0x410d55
push 5
push edi
push edi
push str.http:__www.alicall.com_help_showhelp_54.html
push str.open
push 0
call ebx
push dword [ebp - 0x14]
lea eax, [esi + 0x11d8]
push ecx
mov dword [ebp - 0x14], esp
mov ecx, esp
push eax
call fcn.00405df1
call fcn.0040c4c4
pop ecx
pop ecx
mov ecx, esi
call fcn.00430a63
or dword [ebp - 4], 0xffffffff
call fcn.0043990e
mov ecx, dword [eax + 4]
call fcn.004350bc
jmp 0x410d92
mov ecx, esi
call fcn.00430a7c
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
mov eax, 0x43cf1a
call fcn.0041aa98
sub esp, 0x1c
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x544]
cmp eax, 2
push edi
jge 0x412ac7
mov ecx, dword [esi + 0x8e8]
test ecx, ecx
jne 0x41284e
push ecx
lea ecx, [esi + 0x364]
call fcn.00431593
jmp 0x412ac7
push dword [esi + 0x290]
inc eax
mov dword [esi + 0x544], eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x412872
push 5
lea ecx, [esi + 0x274]
call fcn.00431557
cmp dword [esi + 0x544], 2
jne 0x412ac0
call fcn.0043990e
mov ecx, dword [eax + 4]
call fcn.004350a7
and dword [ebp - 4], 0
lea edi, [esi + 0x11d4]
push edi
lea ecx, [esi + 0xb2c]
call fcn.00433934
mov ecx, edi
call fcn.00410f95
mov ecx, eax
call fcn.00410da1
push 1
lea eax, [ebp - 0x1c]
push eax
mov ecx, edi
call fcn.0040c6fb
mov ebx, 0x440f18
push ebx
push eax
call fcn.0040250a
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
mov byte [ebp - 0xd], al
call fcn.004010aa
cmp byte [ebp - 0xd], 0
je 0x4128e7
push ebx
mov ecx, edi
call fcn.00410fdd
mov ebx, str.Alicall.exe
push ebx
call fcn.0040bcfa
test eax, eax
pop ecx
je 0x4128fe
push ebx
call fcn.0040bd87
pop ecx
push ecx
mov dword [ebp - 0x1c], esp
mov ecx, esp
push edi
call fcn.00405df1
call fcn.0040c49f
xor ebx, ebx
test al, al
pop ecx
jne 0x41298f
mov eax, dword [edi]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x41298f
call fcn.00431677
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push dword [edi]
lea eax, [ebp - 0x14]
push 0x442458
push eax
mov byte [ebp - 4], 4
call fcn.00410f04
add esp, 0xc
push 2
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Alicall2013
call fcn.0040630c
push ecx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x18], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 5
call fcn.00405df1
push esi
mov byte [ebp - 4], 4
call fcn.00401a87
mov ecx, dword [ebp - 0x14]
add esp, 0x14
dec dword [esi + 0x544]
jmp 0x412aa5
push str.Uninst.ini
lea eax, [ebp - 0x1c]
push edi
push eax
call fcn.00410f17
add esp, 8
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 1
mov dword [ebp - 0x18], 1
call fcn.00405df1
call fcn.0040c49f
test al, al
pop ecx
je 0x412a3f
call fcn.00431677
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push dword [edi]
mov eax, dword [esi + 0x11f0]
push eax
lea eax, [ebp - 0x14]
push eax
mov byte [ebp - 4], 2
call fcn.00410f04
add esp, 0xc
push 3
push 2
push ecx
mov ecx, esp
mov dword [ebp - 0x20], esp
push str.Alicall2013
call fcn.0040630c
push ecx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x24], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 3
call fcn.00405df1
push esi
mov byte [ebp - 4], 2
call fcn.00401a87
add esp, 0x14
cmp eax, 2
je 0x412a2b
mov dword [ebp - 0x18], ebx
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
mov byte [ebp - 4], 1
call fcn.004010aa
cmp dword [ebp - 0x18], ebx
je 0x412a9c
mov ecx, esi
call fcn.00411261
push edi
mov ecx, 0x4531d8
call fcn.004300c3
push ebx
lea ecx, [esi + 0x274]
call fcn.00431557
push ebx
lea ecx, [esi + 0x364]
call fcn.00431593
mov eax, dword [esi + 0xac0]
mov dword [esi + 0x11cc], eax
mov eax, dword [esi + 0xb28]
mov dword [esi + 0x11d0], eax
lea eax, [ebp - 0x24]
push eax
push ebx
push esi
push 0x4127f8
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x11c8], eax
jmp 0x412aa2
dec dword [esi + 0x544]
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.004010aa
or dword [ebp - 4], 0xffffffff
call fcn.0043990e
mov ecx, dword [eax + 4]
call fcn.004350bc
jmp 0x412ac7
mov ecx, esi
call fcn.00411261
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret