Function at 0x40a3d0
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
mov esi, dword [0x4137ec]
push edi
imul esi, esi, 0x3e8
push str.Stopping_service...
push 0x3af
push str......_appsprunsrvprunsrv.c
push 1
xor ebx, ebx
push 1
push ebx
xor edi, edi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 4], esi
call fcn.00404a50
mov eax, dword [0x415c20]
add esp, 0x18
cmp eax, ebx
je 0x40ab06
cmp eax, 0xffffffff
je 0x40ab06
cmp dword [0x415c58], ebx
je 0x40a853
mov eax, dword [0x413818]
cmp eax, ebx
je 0x40a43b
cmp word [eax], bx
jne 0x40a450
mov eax, dword [0x413770]
cmp eax, ebx
je 0x40a450
cmp word [eax], bx
je 0x40a450
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [0x415c64]
mov ecx, dword [0x415c40]
push eax
push ecx
call fcn.00402a10
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x40a822
cmp esi, 0xffffffff
je 0x40a822
mov edx, dword [0x415c6c]
mov eax, dword [0x415c68]
mov ecx, dword [0x413714]
mov dword [0x415b9c], edx
mov edx, dword [0x41372c]
mov dword [0x415ba0], eax
mov eax, dword [0x413744]
mov dword [0x415ba4], ecx
mov ecx, dword [0x41390c]
mov dword [0x415ba8], edx
mov edx, dword [0x415c84]
mov dword [0x415bac], eax
mov eax, dword [0x415c7c]
mov dword [0x415bb0], ecx
mov ecx, dword [0x415c74]
mov dword [0x415bb4], edx
mov edx, dword [0x413698]
push 0x40a330
mov dword [0x415b98], esi
mov dword [0x415bb8], eax
mov dword [0x415bbc], ecx
mov dword [0x415bc4], ebx
mov dword [0x415bc8], ebx
mov dword [0x415bcc], edx
call fcn.0040c375
add esp, 4
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push 0x415b98
mov dword [0x415c88], eax
call fcn.00404560
add esp, 4
test eax, eax
jne 0x40a550
push str.Failed_starting_java
push 0x3d4
push str......_appsprunsrvprunsrv.c
push 1
push 3
push ebx
call fcn.00404a50
add esp, 0x18
mov edi, 3
jmp 0x40a663
mov eax, dword [0x415c84]
push str.java_lang_System
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x40a627
push ebx
push 0x4e20
push ebx
push 3
push str.reportServiceStatusE:__d___d___d___d
push 0x34c
push str......_appsprunsrvprunsrv.c
push 1
push ebx
push ebx
call fcn.00404a50
add esp, 0x28
cmp dword [0x415c50], ebx
je 0x40a601
mov ecx, dword [0x415c4c]
cmp ecx, ebx
je 0x40a601
mov eax, dword [0x41395c]
mov dword [0x415c38], eax
push 0x415c24
inc eax
push ecx
mov dword [0x415c2c], ebx
mov dword [0x415c28], 3
mov dword [0x415c30], ebx
mov dword [0x415c3c], 0x4e20
mov dword [0x415c34], ebx
mov dword [0x41395c], eax
call dword [sym.imp.ADVAPI32.dll_SetServiceStatus]
test eax, eax
jne 0x40a601
push str.Failed_to_set_service_status
push 0x362
push str......_appsprunsrvprunsrv.c
push 1
push 3
push ebx
call fcn.00404a50
add esp, 0x18
push str.Forcing_java_jni_System.exit_worker_to_finish...
push 0x3da
push str......_appsprunsrvprunsrv.c
push 1
push ebx
push ebx
call fcn.00404a50
add esp, 0x18
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4
push str.Waiting_for_java_jni_stop_worker_to_finish...
push 0x3de
push str......_appsprunsrvprunsrv.c
push 1
push ebx
push ebx
call fcn.00404a50
push ebx
push 0xffffffffffffffff
push esi
call fcn.00403a80
push str.Java_jni_stop_worker_finished.
push 0x3e0
push str......_appsprunsrvprunsrv.c
push 1
push ebx
push ebx
call fcn.00404a50
add esp, 0x3c
mov dword [ebp - 0xc], 1
push esi
call fcn.00401df0
mov esi, dword [ebp - 4]
add esp, 4
mov eax, dword [0x415c8c]
cmp eax, ebx
je 0x40a6bd
push eax
mov dword [0x413958], ebx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [0x415c90]
push 0x3e8
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [0x415c8c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x415c90]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x415c8c], ebx
cmp esi, 0x7fffffff
jbe 0x40a6cf
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 4]
cmp dword [ebp - 0xc], ebx
je 0x40a6e2
cmp esi, ebx
jne 0x40a6e2
mov dword [ebp - 4], 0x493e0
mov esi, dword [ebp - 4]
cmp dword [ebp + 8], 5
jne 0x40a70f
mov ecx, dword [0x415c40]
push ecx
call fcn.00406c40
add esp, 4
cmp esi, eax
jb 0x40a70f
mov edx, dword [0x415c40]
push edx
call fcn.00406c40
add esp, 4
mov dword [ebp - 4], eax
mov esi, eax
push ebx
push esi
push ebx
push 3
push str.reportServiceStatusE:__d___d___d___d
push 0x34c
push str......_appsprunsrvprunsrv.c
push 1
push ebx
push ebx
call fcn.00404a50
add esp, 0x28
cmp dword [0x415c50], ebx
je 0x40a79f
mov ecx, dword [0x415c4c]
cmp ecx, ebx
je 0x40a79f
mov eax, dword [0x41395c]
mov dword [0x415c38], eax
push 0x415c24
inc eax
push ecx
mov dword [0x415c2c], ebx
mov dword [0x415c28], 3
mov dword [0x415c30], ebx
mov dword [0x415c3c], esi
mov dword [0x415c34], ebx
mov dword [0x41395c], eax
call dword [sym.imp.ADVAPI32.dll_SetServiceStatus]
test eax, eax
jne 0x40a79f
push str.Failed_to_set_service_status
push 0x362
push str......_appsprunsrvprunsrv.c
push 1
push 3
push ebx
call fcn.00404a50
add esp, 0x18
cmp esi, ebx
je 0x40aaa7
push str.Waiting_for_worker_to_die_naturally...
push 0x445
push str......_appsprunsrvprunsrv.c
push 1
push ebx
push ebx
call fcn.00404a50
mov esi, dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
add esp, 0x18
lea eax, [ebp - 0x18]
push eax
call esi
mov ecx, dword [ebp - 4]
mov edx, dword [0x415c20]
push 1
push ecx
push edx
call fcn.00402060
mov edi, eax
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
call esi
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
push ebx
sub eax, edx
push 0x2710
sbb ecx, esi
push ecx
push eax
call fcn.0040c400
push eax
cmp edi, ebx
jne 0x40aa8a
push str.Worker_finished_gracefully_in__d_ms.
xor edi, edi
push 0x450
jmp 0x40aa94
mov ecx, dword [0x415c64]
push ecx
push str.Failed_creating_java__S
push 0x3be
push str......_appsprunsrvprunsrv.c
push 1
push 3
push ebx
call fcn.00404a50
add esp, 0x1c
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4137d0]
cmp eax, ebx
je 0x40a676
cmp word [eax], bx
je 0x40a676
mov eax, dword [0x413758]
cmp eax, ebx
je 0x40aa35
cmp word [eax], bx
je 0x40aa35
mov edx, dword [0x413680]
mov eax, dword [0x413668]
mov ecx, dword [0x415c40]
push ebx
push edx
push eax
push 0x40a2e0
push ebx
push ecx
call fcn.004074f0
mov esi, eax
add esp, 0x18
cmp esi, ebx
je 0x40aa1d
cmp esi, 0xffffffff
je 0x40aa1d
mov edx, dword [0x413758]
push edx
push esi
call fcn.004078f0
add esp, 8
test eax, eax
jne 0x40a8f5
mov eax, dword [0x413800]
push eax
push str.Failed_setting_process_executable__S
push 0x3fc
push str......_appsprunsrvprunsrv.c
push 1
push 3
push ebx
call fcn.00404a50
add esp, 0x1c
mov edi, 2
jmp 0x40a66a
mov edx, dword [0x4137a0]
lea ecx, [ebp - 0x14]
push ecx
push edx
cmp dword [0x415c60], ebx
je 0x40a940
mov eax, dword [0x413744]
mov ecx, dword [0x41372c]
mov edx, dword [0x413714]
push eax
mov eax, dword [0x4136e0]
push ecx
mov ecx, dword [0x413788]
push edx
mov edx, dword [0x4136f8]
push eax
mov eax, dword [0x415c40]
push ecx
push edx
push eax
call fcn.00403500
add esp, 0x24
jmp 0x40a94e
mov eax, dword [0x415c40]
push eax
call fcn.00408ae0
add esp, 0xc
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, eax
mov dword [ebp - 8], eax
mov eax, dword [0x413758]
push edx
push eax
push esi
call fcn.00407aa0
add esp, 0x10
test eax, eax
jne 0x40a993
mov ecx, dword [ebp - 8]
push ecx
push str.Failed_setting_process_arguments__argc_d_
lea edi, [eax + 3]
push 0x40f
push str......_appsprunsrvprunsrv.c
push 1
push 3
push ebx
call fcn.00404a50
add esp, 0x1c
jmp 0x40a66a
mov edx, dword [0x413770]
push edx
push esi
call fcn.00407940
add esp, 8
test eax, eax
jne 0x40a9bc
lea edi, [eax + 4]
mov eax, dword [0x413770]
push eax
push str.Failed_setting_process_working_path_to__S
push 0x416
jmp 0x40a97c
push esi
call fcn.004076a0
add esp, 4
test eax, eax
jne 0x40a9ed
push str.Failed_executing_process
push 0x41e
push str......_appsprunsrvprunsrv.c
push 1
push 3
push ebx
lea edi, [eax + 5]
call fcn.00404a50
add esp, 0x18
jmp 0x40a66a
push str.Waiting_for_stop_worker_to_finish...
push 0x421
push str......_appsprunsrvprunsrv.c
push 1
push ebx
push ebx
call fcn.00404a50
push ebx
push 0xffffffffffffffff
push esi
call fcn.00402060
push str.Stop_worker_finished.
push 0x423
jmp 0x40a652
push str.Failed_creating_process
push 0x3f8
push str......_appsprunsrvprunsrv.c
push 1
push 3
jmp 0x40ab19
push str.Missing_service_ImageFile
push 0x3ea
push str......_appsprunsrvprunsrv.c
push 1
push 3
push ebx
call fcn.00404a50
add esp, 0x18
cmp dword [0x415c50], ebx
jne 0x40ab22
mov eax, dword [0x415c48]
cmp eax, ebx
jne 0x40aa6b
mov eax, str.unknown
push eax
push str.Service__S_is_missing_the_ImageFile
push ebx
push ebx
push ebx
call fcn.00404f20
add esp, 0x14
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 4
push str.Worker_was_killed_in__d_ms.
push 0x453
push str......_appsprunsrvprunsrv.c
push 1
push ebx
push ebx
call fcn.00404a50
add esp, 0x1c
jmp 0x40aad2
push str.Sending_WM_CLOSE_to_worker
push 0x456
push str......_appsprunsrvprunsrv.c
push 1
push ebx
push ebx
call fcn.00404a50
mov ecx, dword [0x415c20]
push ebx
push ebx
push 0x10
push ecx
call fcn.00401fb0
add esp, 0x28
push str.Service_stop_thread_completed.
push 0x45a
push str......_appsprunsrvprunsrv.c
push 1
push 1
push ebx
call fcn.00404a50
mov edx, dword [0x415c88]
add esp, 0x18
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push str.Worker_is_not_defined
push 0x3b2
push str......_appsprunsrvprunsrv.c
push 1
push 1
push ebx
call fcn.00404a50
add esp, 0x18
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 4