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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x140
call fcn.005bd7a0
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 0x4c9069
mov eax, dword [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
test eax, eax
je 0x4c9069
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.004c9420
add esp, 0x10
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
jge 0x4c902a
mov dword [ebp - 0x12c], 0x100
jmp 0x4c9036
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 0x4c936a
mov ecx, 1
test ecx, ecx
je 0x4c9080
mov edx, dword [ebp + 8]
mov dword [ebp - 0x120], edx
jmp 0x4c9271
mov eax, dword [ebp + 8]
push eax
call fcn.005efa30
add esp, 4
add eax, 1
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x110]
shl eax, 1
call fcn.005be1b0
mov dword [ebp - 0x13c], esp
mov ecx, dword [ebp - 0x13c]
mov dword [ebp - 0x10c], ecx
cmp dword [ebp - 0x10c], 0
jne 0x4c90cc
mov dword [ebp - 0x120], str.no_stack_
jmp 0x4c9271
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 0x4c913b
mov dword [ebp - 0x108], 0
jmp 0x4c910e
mov eax, dword [ebp - 0x108]
add eax, 1
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
cmp ecx, dword [ebp - 0x110]
jae 0x4c913b
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 0x4c90ff
mov dword [ebp - 0x108], 0
jmp 0x4c9156
mov eax, dword [ebp - 0x108]
add eax, 1
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
cmp ecx, dword [ebp - 0x110]
jae 0x4c925d
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x10c]
movzx ecx, word [eax + edx*2]
cmp ecx, 0x25
jne 0x4c9258
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.0x4c91cb.1
mov eax, dword [ebp - 0x118]
movzx ecx, byte [eax + 0x4c9398]
jmp dword [ecx*4 + 0x4c9380]
mov edx, dword [ebp - 0x108]
add edx, 1
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x130], 1
jmp case.0x4c91cb.1
mov eax, 0x53
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x10c]
mov word [edx + ecx*2 + 2], ax
jmp case.0x4c91cb.1
mov eax, 0x73
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x10c]
mov word [edx + ecx*2 + 2], ax
jmp case.0x4c91cb.1
mov eax, 0x43
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x10c]
mov word [edx + ecx*2 + 2], ax
jmp case.0x4c91cb.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 0x4c9181
jmp 0x4c9147
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x120], eax
xor ecx, ecx
jne 0x4c9080
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.004c9420
add esp, 0x10
mov eax, 1
imul ecx, eax, 0xff
mov dword [ebp - 0x134], ecx
cmp dword [ebp - 0x134], 0x100
jae 0x4c92bb
jmp 0x4c92c0
call fcn.005bd5d4
mov edx, dword [ebp - 0x134]
mov byte [ebp + edx - 0x104], 0
mov dword [ebp - 0x114], 0
mov eax, 1
test eax, eax
je 0x4c9354
call fcn.004c8e40
test eax, eax
jle 0x4c9354
push str.OpenSSL
push 0
call dword [sym.imp.ADVAPI32.dll_RegisterEventSourceA]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x4c9352
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 0x4c9345
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 0x4c936a
push 0x10
push str.OpenSSL:_FATAL
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.005bd4a0
mov esp, ebp
pop ebp
ret