Function at 0x412c18
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
test dl, dl
je 0x412c26
add esp, 0xfffffff0
call fcn.00404178
mov ebx, edx
mov esi, eax
xor edx, edx
mov eax, esi
call fcn.00403c64
mov dword [esi + 0xc], 0xffff
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
call sub.kernel32.dll_CreateEventW
mov dword [esi + 0x10], eax
push 0
push 0
push 0
push 0
call sub.kernel32.dll_CreateEventW
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], 0xffffffff
mov dl, 1
mov eax, dword [0x40b124]
call fcn.00403c64
mov dword [esi + 0x20], eax
mov eax, esi
test bl, bl
je 0x412c85
call fcn.004041d0
pop dword fs:[0]
add esp, 0xc
mov eax, esi
pop esi
pop ebx
mov ebx, 0x75e94bc5
test dword [0x4c6460], edi
jne 0x412c9c
or edi, dword [0x4c5c44]
call fcn.004449fc
test ebx, ebx
jbe 0x412ca7
or ebx, edx
test dword [0x4c61a0], 0xb0df8522
jle 0x412cb9
mov dword [0x4c6a9e], edx
dec edi
sub edx, eax
dec edi
xor esi, ebp
xor eax, 0x21084890
xchg ebx, edx
inc esi
or eax, ecx
mov ecx, 0x3021d012
cmp esp, ecx
jnp 0x412cd9
and edx, 0x9797ffb5
not esi
xor esi, 0xf921ee04
call fcn.0042f127
xchg esi, edx
shl edi, 0x1b
mov edi, esp
or dword [0x4c6ae4], ebx
dec esi
mov edi, dword [0x4c4697]
ror eax, 4
inc edi
dec ecx
jne 0x412ccf
call fcn.0040a1c7
or edi, ebx
rol eax, 0x1f
test ebp, ebx
jp 0x412d16
and ebx, 0xaf78d80b
add edx, edi
and esi, dword [0x4c4250]
sub edx, 0x5de62c5
inc ecx
rol edi, 3
mov edi, 0x3f8387f2
xchg eax, edx
call fcn.004a8a9a
or esi, 0xd735b180
xor eax, ebx
call fcn.0047841a
or edi, 0xcda4a07a
sub esi, ecx
xchg ecx, esi
call fcn.004a715e
cmp ebx, 0xfde8dcf2
jg 0x412d5b
rol edx, 0x18
mov ecx, 0x369c3dd7
mov ecx, 0x3ccc8e90
call fcn.0041761a
xor eax, 0xee0a8373
add ebx, dword [0x4c44cc]
or eax, esi
sub edx, esp
add edi, 0xd7966122
xchg edx, eax
call fcn.00465d6d
shl edx, 0x1f
rol edx, 0x11
and dword [0x4c6b8f], edx
neg edx
dec ecx
jne 0x412d65
shr eax, 0x18
mov eax, ecx
sub edx, 0x95a72e86
call fcn.00465d6d
test edi, 0x6b2d5e16
ja 0x412db7
sub edi, 0x65d55d86
mov ecx, 0x7910712f
not ebx
xchg edi, edx
and dword [0x4c6caf], edx
test dword [0x4c5082], ecx
jae 0x412dd0
xchg edi, esi
xor edi, edx
mov ebx, esp
call fcn.004a8a9a
rol edx, 0xd
call fcn.0040a1c7
sub dword [0x4c6af4], ebx
xor eax, 0x7405e42b
mov ebx, esi
dec ecx
jne 0x412dbc
neg ecx
dec esi
not esi
rol esi, 0xe
add edi, 0xd07515fd
or edi, eax
and eax, dword [0x4c64b2]
inc ebx
and edx, 0xae3fff3c
not esi
xor ebx, 0x8742cd63
ror edx, 0x12
xchg ecx, edx
not ecx
and dword [0x4c6a7d], ebx
shr eax, 0x1a
not eax
dec ebx
mov eax, ebp
mov edx, 0x41bfbc52
inc edi
mov edi, 0x9ae41d6b
xor ebx, dword [0x4c6dba]
xor eax, 0xcd3e5f70
dec esi
or ebx, dword [0x4c6d61]
call fcn.0048e7ca
add eax, dword [0x4c6e62]
or eax, dword [0x4c6fb9]
ror edx, 0x10
sub edi, 0x6d21ba54
or dword [0x4c6ca3], edx
rol ecx, 9
xchg edi, eax
xor esi, dword [0x4c6e7c]
xchg ebx, esi
sub edx, esi
call fcn.00476f5a
add edx, esi
xchg ebx, esi
xchg edi, eax
ror ecx, 9
and dword [0x4c6c12], eax
add edi, 0x6d21ba54
rol edx, 0x10
call fcn.00445baf
inc esi
xor eax, 0xcd3e5f70
or edi, 0xbf765aee
inc esi
mov dword [0x4c6b6e], ecx
call fcn.00455c11
inc esi
and dword [0x4c6c85], edx
neg ecx
xchg edx, esi
rol ecx, 9
not edi
ror edi, 0x11
rol edi, 0x11
not edi
ror ecx, 9
xchg edx, esi
neg ecx
mov dword [0x4c6a11], eax
dec esi
call fcn.0047a1e5
mov dword [0x4c6be7], esi
dec esi
sub edi, 0xbff65faf
mov edi, 0xf22bd1f7
mov dword [ebp - 0x10], ebx
mov byte [ebp - 0xc], 0
lea eax, [ebp - 0x10]
push eax
push 0
mov ecx, dword [0x4c66dc]
mov dl, 1
mov eax, dword [0x40b2b8]
call fcn.00410b64
call fcn.0040471c
push ebx
mov ecx, esi
mov edx, edi
mov eax, dword [ebp - 4]
call 0x41364c
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 8]
mov ecx, 1
mov edx, dword [0x40b28c]
call fcn.004070c4
add esp, 4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 8]
push eax
lea edx, [edi + esi]
mov ecx, ebx
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8