Function at 0x402030
Capabilities:
Access the windows event log

Disassembly:
sub esp, 0x10
mov eax, dword [0x40eba8]
push ebx
push ebp
push esi
lea edx, [esp + 0x10]
push edi
xor edi, edi
push edx
lea edx, [esp + 0x14]
mov dword [esp + 0x18], 0x10002
mov dword [esp + 0x1c], str.Stop_Thread
mov dword [esp + 0x20], edi
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
je 0x402078
mov dword [esp + 0x30], str.Could_not_attach_the_stop_thread_to_the_Java_Virtual_Machine.
push edi
lea eax, [esp + 0x34]
jmp 0x40227b
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 0x390]
cmp al, 1
jne 0x4020cc
mov dword [esp + 0x30], str.Exception_after_attachin_to_the_Java_Virtual_Machine.
push edi
lea eax, [esp + 0x34]
mov ecx, dword [esp + 0x28]
push eax
push edi
push 1
push edi
push 0xc0001000
push edi
push 1
push ecx
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 0x40]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x10]
push eax
mov dword [esp + 0x2c], ebx
mov edx, dword [eax]
call dword [edx + 0x390]
cmp al, 1
jne 0x402101
mov dword [esp + 0x30], str.Could_not_find_the_service_stop_class.
push edi
lea eax, [esp + 0x34]
jmp 0x402096
cmp ebx, edi
jne 0x402134
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x30]
push edi
push edx
push edi
push 1
push edi
push 0xc0001000
push edi
push 1
push eax
mov dword [esp + 0x54], str.Could_not_find_the_service_stop_class.
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
push str.__Ljava_lang_String__V
push edx
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0x1c4]
mov esi, eax
mov eax, dword [esp + 0x10]
push eax
mov dword [esp + 0x30], esi
mov ecx, dword [eax]
call dword [ecx + 0x390]
cmp al, 1
jne 0x4021a6
mov dword [esp + 0x30], str.Could_not_find_the_stop_method.
push edi
lea edx, [esp + 0x34]
mov eax, dword [esp + 0x28]
push edx
push edi
push 1
push edi
push 0xc0001000
push edi
push 1
push eax
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret
cmp esi, edi
jne 0x4021bc
mov dword [esp + 0x30], str.Could_not_find_the_stop_method.
push edi
lea eax, [esp + 0x34]
jmp 0x40227b
mov eax, dword [esp + 0x10]
push str.java_lang_String
push eax
mov edx, dword [eax]
call dword [edx + 0x18]
mov esi, eax
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x390]
cmp al, 1
jne 0x4021ed
mov dword [esp + 0x30], str.Could_not_find_the_String_class.
push edi
lea edx, [esp + 0x34]
jmp 0x402170
cmp esi, edi
jne 0x402200
mov dword [esp + 0x30], str.Could_not_find_the_String_class.
push edi
lea eax, [esp + 0x34]
jmp 0x40227b
mov eax, dword [esp + 0x10]
push edi
push esi
mov esi, dword [esp + 0x38]
mov edx, dword [eax]
push esi
push eax
call dword [edx + 0x2b0]
mov ebp, eax
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x390]
cmp al, 1
jne 0x40226a
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x30]
push edi
push edx
push edi
push 1
push edi
push 0xc0001000
push edi
push 1
push eax
mov dword [esp + 0x54], str.Could_not_create_a_stop_parameter_array.
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret
cmp ebp, edi
jne 0x40229d
mov dword [esp + 0x30], str.Could_not_create_a_stop_parameter_array.
push edi
lea eax, [esp + 0x34]
mov ecx, dword [esp + 0x28]
push eax
push edi
push 1
push edi
push 0xc0001000
push edi
push 1
push ecx
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret
cmp esi, edi
jle 0x402309
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x29c]
mov esi, eax
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x390]
cmp al, 1
je 0x402379
test esi, esi
je 0x4023c0
mov eax, dword [esp + 0x10]
push esi
push edi
push ebp
mov edx, dword [eax]
push eax
call dword [edx + 0x2b8]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x390]
cmp al, 1
je 0x4023f3
mov eax, dword [esp + 0x30]
inc edi
add ebx, 4
cmp edi, eax
jl 0x4022a5
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
push ebp
push eax
push ebx
push ecx
call fcn.00402450
mov eax, dword [esp + 0x20]
add esp, 0x10
mov edx, dword [eax]
push eax
call dword [edx + 0x390]
cmp al, 1
jne 0x40243a
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x30]
push 0
push eax
push 0
push 1
push 0
push 0xc0001000
push 0
push 1
push ecx
mov dword [esp + 0x54], str.Could_not_call_the_stop_method.
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 0x40]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x30]
push 0
push edx
push 0
push 1
push 0
push 0xc0001000
push 0
push 1
push eax
mov dword [esp + 0x54], str.Could_not_create_a_stop_parameter_string.
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x30]
push 0
push eax
push 0
push 1
push 0
push 0xc0001000
push 0
push 1
push ecx
mov dword [esp + 0x54], str.Could_not_create_a_stop_parameter_string.
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x30]
push 0
push edx
push 0
push 1
push 0
push 0xc0001000
push 0
push 1
push eax
mov dword [esp + 0x54], str.Could_not_set_an_element_in_the_stop_parameter_array.
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x10
ret