Function at 0x10018010
Capabilities:
Access the windows event log
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x100180c0
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
test eax, eax
je 0x100180c0
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x10c]
push edx
mov eax, dword [ebp + 8]
push eax
push pe_nt_image_headers32
lea ecx, [ebp - 0x108]
push ecx
call dword [sym.imp.msvcrt.dll__vsnprintf]
add esp, 0x10
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
jge 0x10018084
mov dword [ebp - 0x130], pe_nt_image_headers32
jmp 0x10018090
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x130], edx
push 0
lea eax, [ebp - 0x114]
push eax
mov ecx, dword [ebp - 0x130]
push ecx
lea edx, [ebp - 0x108]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0x10c], 0
jmp 0x100183b6
mov ecx, 1
test ecx, ecx
je 0x100180d4
mov edx, dword [ebp + 8]
mov dword [ebp - 8], edx
jmp 0x100182fa
mov eax, dword [ebp + 8]
mov dword [ebp - 0x134], eax
mov ecx, dword [ebp - 0x134]
add ecx, 1
mov dword [ebp - 0x138], ecx
mov edx, dword [ebp - 0x134]
mov al, byte [edx]
mov byte [ebp - 0x139], al
add dword [ebp - 0x134], 1
cmp byte [ebp - 0x139], 0
jne 0x100180ec
mov ecx, dword [ebp - 0x134]
sub ecx, dword [ebp - 0x138]
mov dword [ebp - 0x140], ecx
mov edx, dword [ebp - 0x140]
add edx, 1
mov dword [ebp - 0x120], edx
mov eax, dword [ebp - 0x120]
shl eax, 1
push eax
call dword [sym.imp.msvcrt.dll_malloc]
add esp, 4
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
jne 0x10018158
mov dword [ebp - 8], str.no_stack_
jmp 0x100182fa
mov ecx, dword [ebp - 0x120]
push ecx
mov edx, dword [ebp - 0x118]
push edx
mov eax, dword [ebp - 0x120]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x100181c7
mov dword [ebp - 0x11c], 0
jmp 0x1001819a
mov edx, dword [ebp - 0x11c]
add edx, 1
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x11c]
cmp eax, dword [ebp - 0x120]
jae 0x100181c7
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x11c]
movsx dx, byte [ecx]
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x118]
mov word [ecx + eax*2], dx
jmp 0x1001818b
mov dword [ebp - 0x11c], 0
jmp 0x100181e2
mov edx, dword [ebp - 0x11c]
add edx, 1
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x11c]
cmp eax, dword [ebp - 0x120]
jae 0x100182e9
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x118]
movzx eax, word [edx + ecx*2]
cmp eax, 0x25
jne 0x100182e4
mov dword [ebp - 0x124], 0
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x118]
movzx eax, word [edx + ecx*2 + 2]
mov dword [ebp - 0x144], eax
mov ecx, dword [ebp - 0x144]
sub ecx, 0x2a
mov dword [ebp - 0x144], ecx
cmp dword [ebp - 0x144], 0x49
ja case.0x10018257.1
mov edx, dword [ebp - 0x144]
movzx eax, byte [edx + 0x100183d4]
jmp dword [eax*4 + 0x100183bc]
mov ecx, dword [ebp - 0x11c]
add ecx, 1
mov dword [ebp - 0x11c], ecx
mov dword [ebp - 0x124], 1
jmp case.0x10018257.1
mov edx, 0x53
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x118]
mov word [ecx + eax*2 + 2], dx
jmp case.0x10018257.1
mov edx, 0x73
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x118]
mov word [ecx + eax*2 + 2], dx
jmp case.0x10018257.1
mov edx, 0x43
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x118]
mov word [ecx + eax*2 + 2], dx
jmp case.0x10018257.1
mov edx, 0x63
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x118]
mov word [ecx + eax*2 + 2], dx
cmp dword [ebp - 0x124], 0
jne 0x1001820d
jmp 0x100181d3
mov edx, dword [ebp - 0x118]
mov dword [ebp - 8], edx
xor eax, eax
jne 0x100180d4
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x10c]
push edx
mov eax, dword [ebp - 8]
push eax
push 0xff
lea ecx, [ebp - 0x108]
push ecx
call dword [sym.imp.msvcrt.dll__vsnprintf]
add esp, 0x10
mov byte [ebp - 9], 0
mov dword [ebp - 0x10c], 0
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x100183a0
call fcn.10017ec0
test eax, eax
jle 0x100183a0
push str.OpenSSL
push 0
call dword [sym.imp.ADVAPI32.dll_RegisterEventSourceA]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x1001839e
lea edx, [ebp - 0x108]
mov dword [ebp - 0x12c], edx
push 0
lea eax, [ebp - 0x12c]
push eax
push 0
push 1
push 0
push 0
push 0
push 1
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
jmp 0x100183b6
push 0x10
push str.OpenSSL:_FATAL
lea eax, [ebp - 0x108]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov esp, ebp
pop ebp
ret