Function at 0x4c8a80
Capabilities:
Access the windows event log
Print debug messages
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x140
call fcn.005bd220
mov eax, dword [0x6ce8d4]
xor eax, ebp
mov dword [ebp - 4], eax
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x4c8b49
mov eax, dword [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
test eax, eax
je 0x4c8b49
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x114], ecx
mov edx, dword [ebp - 0x114]
push edx
mov eax, dword [ebp + 8]
push eax
push 0x100
lea ecx, [ebp - 0x104]
push ecx
call fcn.004c8f00
add esp, 0x10
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
jge 0x4c8b0a
mov dword [ebp - 0x12c], 0x100
jmp 0x4c8b16
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x12c], edx
push 0
lea eax, [ebp - 0x140]
push eax
mov ecx, dword [ebp - 0x12c]
push ecx
lea edx, [ebp - 0x104]
push edx
mov eax, dword [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0x114], 0
jmp 0x4c8e4a
mov ecx, 1
test ecx, ecx
je 0x4c8b60
mov edx, dword [ebp + 8]
mov dword [ebp - 0x120], edx
jmp 0x4c8d51
mov eax, dword [ebp + 8]
push eax
call fcn.005ef360
add esp, 4
add eax, 1
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x110]
shl eax, 1
call fcn.005bdc30
mov dword [ebp - 0x13c], esp
mov ecx, dword [ebp - 0x13c]
mov dword [ebp - 0x10c], ecx
cmp dword [ebp - 0x10c], 0
jne 0x4c8bac
mov dword [ebp - 0x120], 0x65cec4
jmp 0x4c8d51
mov edx, dword [ebp - 0x110]
push edx
mov eax, dword [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x110]
push ecx
mov edx, dword [ebp + 8]
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x4c8c1b
mov dword [ebp - 0x108], 0
jmp 0x4c8bee
mov eax, dword [ebp - 0x108]
add eax, 1
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
cmp ecx, dword [ebp - 0x110]
jae 0x4c8c1b
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x108]
movsx ax, byte [edx]
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x10c]
mov word [edx + ecx*2], ax
jmp 0x4c8bdf
mov dword [ebp - 0x108], 0
jmp 0x4c8c36
mov eax, dword [ebp - 0x108]
add eax, 1
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
cmp ecx, dword [ebp - 0x110]
jae 0x4c8d3d
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x10c]
movzx ecx, word [eax + edx*2]
cmp ecx, 0x25
jne 0x4c8d38
mov dword [ebp - 0x130], 0
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x10c]
movzx ecx, word [eax + edx*2 + 2]
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x118]
sub edx, 0x2a
mov dword [ebp - 0x118], edx
cmp dword [ebp - 0x118], 0x49
ja case.0x4c8cab.1
mov eax, dword [ebp - 0x118]
movzx ecx, byte [eax + 0x4c8e78]
jmp dword [ecx*4 + 0x4c8e60]
mov edx, dword [ebp - 0x108]
add edx, 1
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x130], 1
jmp case.0x4c8cab.1
mov eax, 0x53
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x10c]
mov word [edx + ecx*2 + 2], ax
jmp case.0x4c8cab.1
mov eax, 0x73
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x10c]
mov word [edx + ecx*2 + 2], ax
jmp case.0x4c8cab.1
mov eax, 0x43
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x10c]
mov word [edx + ecx*2 + 2], ax
jmp case.0x4c8cab.1
mov eax, 0x63
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x10c]
mov word [edx + ecx*2 + 2], ax
cmp dword [ebp - 0x130], 0
jne 0x4c8c61
jmp 0x4c8c27
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x120], eax
xor ecx, ecx
jne 0x4c8b60
lea edx, [ebp + 0xc]
mov dword [ebp - 0x114], edx
mov eax, dword [ebp - 0x114]
push eax
mov ecx, dword [ebp - 0x120]
push ecx
push 0xff
lea edx, [ebp - 0x104]
push edx
call fcn.004c8f00
add esp, 0x10
mov eax, 1
imul ecx, eax, 0xff
mov dword [ebp - 0x134], ecx
cmp dword [ebp - 0x134], 0x100
jae 0x4c8d9b
jmp 0x4c8da0
call fcn.005bd05b
mov edx, dword [ebp - 0x134]
mov byte [ebp + edx - 0x104], 0
mov dword [ebp - 0x114], 0
mov eax, 1
test eax, eax
je 0x4c8e34
call fcn.004c8920
test eax, eax
jle 0x4c8e34
push 0x6422a0
push 0
call dword [sym.imp.ADVAPI32.dll_RegisterEventSourceA]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x4c8e32
lea ecx, [ebp - 0x104]
mov dword [ebp - 0x138], ecx
push 0
lea edx, [ebp - 0x138]
push edx
push 0
push 1
push 0
push 0
push 0
push 1
mov eax, dword [ebp - 0x124]
push eax
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
test eax, eax
jne 0x4c8e25
mov ecx, dword [ebp - 0x138]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
jmp 0x4c8e4a
push 0x10
push 0x65ced8
lea eax, [ebp - 0x104]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea esp, [ebp - 0x140]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005bcf27
mov esp, ebp
pop ebp
ret