Function at 0x421ca0
Capabilities:
Get common file path
Get file size
Read file on windows

Disassembly:
sub esp, 0xd1c
mov eax, dword [0x4a8228]
xor eax, esp
mov dword [esp + 0xd14], eax
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x103
lea eax, [esp + 0x41d]
push ebx
push eax
mov byte [esp + 0x424], bl
call fcn.00468c40
add esp, 0xc
lea ecx, [esp + 0x418]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push ebx
push 0x80
push 3
push ebx
push 1
push closesocket
push str.ServiceManager.cfg
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x421d13
xor al, al
jmp 0x421fd2
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esp + 0x14], eax
add eax, 1
push eax
call fcn.00461d85
mov edx, dword [esp + 0x18]
add esp, 4
mov ebp, eax
push ebx
lea eax, [esp + 0x18]
push eax
mov byte [edx + ebp], bl
mov ecx, dword [esp + 0x1c]
push ecx
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edi, [esp + 0x18]
mov eax, ebp
call fcn.00424820
mov esi, eax
cmp esi, ebx
je 0x421fd0
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea esp, [esp]
lea edx, [esp + 0x18]
push 0x494b20
push edx
call fcn.00463377
add esp, 8
test eax, eax
jne 0x421ef4
lea edi, [esp + 0x18]
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
je 0x421fd0
mov eax, edi
push 0x4951a0
push eax
call fcn.00463377
add esp, 8
test eax, eax
jne 0x421fd0
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
je 0x421fbb
jmp 0x421dd0
lea ecx, [esp + 0x18]
push 0x4951a4
push ecx
call fcn.00463377
add esp, 8
test eax, eax
je 0x421fbb
lea edx, [esp + 0x18]
push str.DivisionManager
push edx
call fcn.00463377
add esp, 8
test eax, eax
jne 0x421e5b
lea edi, [esp + 0x18]
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
je 0x421fbb
mov eax, edi
push eax
push 0x104
push 0x4ed2c4
call fcn.004633e1
add esp, 0xc
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
je 0x421fbb
call fcn.00424820
mov esi, eax
cmp esi, ebx
je 0x421fbb
mov ecx, edi
push ecx
call fcn.0046346c
add esp, 4
mov word [0x4ed3c8], ax
lea edx, [esp + 0x18]
push str.ApplyAutoStartService
push edx
call fcn.00463377
add esp, 8
test eax, eax
jne 0x421eda
lea edi, [esp + 0x18]
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
je 0x421fbb
push 0x495130
call ebp
push eax
push 0x495130
mov eax, edi
push eax
call ebp
push eax
mov ecx, edi
push ecx
push 0x10001
push 0x400
call dword [sym.imp.KERNEL32.dll_CompareStringA]
sub eax, 2
jne 0x421ed4
mov edx, edi
push edx
push str.ApplyAutoStartService
push 0x494b20
push 0x4ed1c0
mov dword [0x4ed3cc], 1
call fcn.0045f1c0
jmp 0x421eda
mov dword [0x4ed3cc], ebx
lea edi, [esp + 0x18]
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
jne 0x421dd0
jmp 0x421fbb
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x924]
push 0x400
push ecx
call fcn.004633e1
add esp, 0xc
lea edi, [esp + 0x18]
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
je 0x421fd0
mov edx, edi
push 0x4951a0
push edx
call fcn.00463377
add esp, 8
test eax, eax
jne 0x421fd0
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
je 0x421fbb
jmp 0x421f50
lea eax, [esp + 0x18]
push 0x4951a4
push eax
call fcn.00463377
add esp, 8
test eax, eax
je 0x421fbb
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x524]
push 0x400
push edx
call fcn.004633e1
add esp, 0xc
lea edi, [esp + 0x18]
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
je 0x421fbb
mov eax, edi
push eax
lea ecx, [esp + 0x524]
push ecx
lea edx, [esp + 0x928]
push edx
push 0x4ed1c0
call fcn.0045f1c0
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
jne 0x421f50
lea edi, [esp + 0x18]
mov eax, esi
call fcn.00424820
mov esi, eax
cmp esi, ebx
jne 0x421d70
mov al, 1
mov ecx, dword [esp + 0xd24]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004626c8
add esp, 0xd1c
ret