Function at 0x412748
Capabilities:
Create service
Persist via windows service

Disassembly:
push ebp
sub esp, 0x74
lea ebp, [esp - 4]
mov eax, dword [0x424eb0]
xor eax, ebp
mov dword [ebp + 0x74], eax
push 0x98
mov eax, 0x417831
call fcn.00413fed
mov esi, 0x424e38
lea eax, [ebp + 0x3c]
push esi
push eax
call fcn.0040b6e8
pop ecx
pop ecx
xor ebx, ebx
push eax
mov ecx, esi
mov dword [ebp - 4], ebx
call fcn.00404dda
or dword [ebp - 4], 0xffffffff
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp + 0x3c]
call fcn.00403933
cmp dword [0x424e4c], 0x10
mov eax, dword [0x424e38]
jae 0x4127a8
mov eax, esi
lea ecx, [ebp + 0xc]
push ecx
push eax
call dword [sym.imp.msvcr100.dll__stat64i32]
pop ecx
pop ecx
test eax, eax
jns 0x412804
cmp dword [0x424e4c], 0x10
jb 0x4127c8
mov esi, dword [0x424e38]
call dword [sym.imp.msvcr100.dll__errno]
push dword [eax]
call dword [sym.imp.msvcr100.dll_strerror]
push eax
push esi
push str.Could_not_find__s:__s_n
call fcn.004115c7
add esp, 0x10
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x74]
xor ecx, ebp
call fcn.00413fde
add ebp, 0x78
leave
ret
push edi
push 2
lea ecx, [ebp - 0xa4]
call fcn.00408967
lea eax, [ebp + 0x3c]
push ebx
push eax
mov dword [ebp - 4], edi
call fcn.0040b656
pop ecx
pop ecx
push 0x41de14
push eax
lea eax, [ebp - 0xa4]
push 0x41df34
push eax
mov byte [ebp - 4], 2
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407f5a
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push ebx
push edi
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 1
call fcn.00403933
push str._service
lea eax, [ebp - 0xa4]
push 0x41df44
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push 0x41df48
push esi
push 0x41df4c
push str._config
lea eax, [ebp - 0xa4]
push 0x41df58
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407f5a
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
cmp dword [0x424e80], ebx
je 0x41292c
lea eax, [ebp + 0x3c]
push 0x424e70
push eax
call fcn.0040b6e8
pop ecx
pop ecx
push 0x41df5c
push eax
push 0x41df60
push str._logfile
lea eax, [ebp - 0xa4]
push 0x41df70
push eax
mov byte [ebp - 4], 3
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407f5a
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push ebx
push edi
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 1
call fcn.00403933
cmp dword [0x424e64], ebx
je 0x4129f4
cmp dword [0x424e68], 0x10
mov eax, dword [0x424e54]
mov esi, 0x424e54
jae 0x41294d
mov eax, esi
lea ecx, [ebp + 0xc]
push ecx
push eax
call dword [sym.imp.msvcr100.dll__stat64i32]
pop ecx
pop ecx
test eax, eax
jns 0x412993
cmp dword [0x424e68], 0x10
jb 0x412971
mov eax, dword [0x424e54]
mov dword [ebp + 4], eax
jmp 0x412974
mov dword [ebp + 4], esi
call dword [sym.imp.msvcr100.dll__errno]
push dword [eax]
call dword [sym.imp.msvcr100.dll_strerror]
push eax
push dword [ebp + 4]
push str.Could_not_find_profile___s_:__s_n
call fcn.0041130e
add esp, 0x10
lea eax, [ebp + 0x3c]
push esi
push eax
call fcn.0040b6e8
pop ecx
pop ecx
push 0x41df98
push eax
push 0x41df9c
push str._profile
lea eax, [ebp - 0xa4]
push 0x41dfac
push eax
mov byte [ebp - 4], 4
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407f5a
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push ebx
push edi
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 1
call fcn.00403933
mov eax, dword [0x425338]
cmp eax, ebx
jbe 0x412a32
push eax
push 0x41dfb0
push str._verbose
lea eax, [ebp - 0xa4]
push 0x41dfc0
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
mov ecx, eax
call fcn.00412c03
mov eax, dword [0x425368]
cmp eax, ebx
jbe 0x412a70
push eax
push 0x41dfc4
push str._timing
lea eax, [ebp - 0xa4]
push 0x41dfd0
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
push eax
call fcn.00407da3
pop ecx
pop ecx
mov ecx, eax
call fcn.00412c03
lea eax, [ebp + 0x58]
push eax
lea ecx, [ebp - 0xa4]
call fcn.00415b32
cmp dword [ebp + 0x6c], 0x10
mov eax, dword [ebp + 0x58]
mov byte [ebp - 4], 5
jae 0x412a8f
lea eax, [ebp + 0x58]
push eax
push str.Installing_JQS_service:__s_n
push edi
call fcn.00411620
add esp, 0xc
push 2
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov esi, eax
cmp esi, ebx
jne 0x412adf
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push str.Unable_to_install_service:_OpenSCManager_failed__error__d__n
call fcn.004115c7
pop ecx
pop ecx
push ebx
push edi
lea ecx, [ebp + 0x58]
call fcn.00403933
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa4]
call fcn.00407add
jmp 0x4127e5
cmp dword [ebp + 0x6c], 0x10
mov eax, dword [ebp + 0x58]
jae 0x412aeb
lea eax, [ebp + 0x58]
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push edi
push 2
push 0x10
push 0xf01ff
push 0x41e02c
push 0x41e040
push esi
call dword [sym.imp.ADVAPI32.dll_CreateServiceA]
mov dword [ebp + 4], eax
cmp eax, ebx
jne 0x412b5d
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x431
jne 0x412b2c
push 0x41e058
push str.Unable_to_register_service:__s_already_installed_n
jmp 0x412b32
push eax
push str.Unable_to_register_service:_CreatedService_failed__error__d__n
call fcn.004115c7
pop ecx
pop ecx
mov byte [ebp + 0xb], bl
push ebx
push edi
lea ecx, [ebp + 0x58]
call fcn.00403933
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa4]
call fcn.00407add
mov al, byte [ebp + 0xb]
jmp 0x4127e7
cmp dword [0x425190], 2
jne 0x412bac
cmp dword [0x425184], 5
jb 0x412bac
mov eax, dword [0x425244]
cmp eax, ebx
je 0x412ba1
lea ecx, [ebp]
push ecx
push edi
push dword [ebp + 4]
mov dword [ebp], str.Prefetches_JRE_files_for_faster_startup_of_Java_applets_and_applications
call eax
test eax, eax
jne 0x412bac
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push str.Failed_to_set_service_description:_ChangeServiceConfig2_failed__error__d__n
call fcn.0041130e
pop ecx
jmp 0x412bab
push str.Unable_to_set_service_description:_ChangeServiceConfig2_is_not_available_n
call fcn.0041130e
pop ecx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push dword [ebp + 4]
call esi
mov byte [ebp + 0xb], 1
jmp 0x412b3c