Function at 0x12c323c
Capabilities:
Encode data using xor

Disassembly:
jmp 0x12c3246
pushal
call 0x12c324c
pop ebp
sub ebp, 0x10
sub ebp, 0xec323c
jmp 0x12c3262
add ch, ch
mov eax, 0xec323c
add eax, ebp
add eax, 0x4c
cmp al, 0x32
in al, dx
add byte [ebx], al
lds eax, [ecx + 0x4cc0]
add byte [ecx + 0x5b3], bh
add byte [eax], al
mov ecx, 0x5b3
mov edx, 0x59df1d7e
pop ecx
xor byte [eax], dl
inc eax
dec ecx
jne 0x12c3279
jmp 0x12c328c
cmc
mov bl, 0xf5
test dword [edx + 0x7e], 0xbfff7e7e
xchg byte [esi + 0x7e], bh
jle 0x12c3318
mov bl, 0xc6
je 0x12c331d
jle 0x12c331f
les edx, [esi + 0x7e]
jle 0x12c3324
mov dword [ebp + edi*2 + 0x72fff5b6], ebx
jle 0x12c332d
pushfd
jge 0x12c3260
cmc
push dword [edx + 0x7e]
jle 0x12c332e
jle 0x12c332e
jge 0x12c326d
mov ebx, 0x825a1af3
sbb bl, byte [edx - 0x7e]
idiv dword [edx + 0x5a]
push ss
push sp
pop edi
jle 0x12c32d6
pop ebp
jbe 0x12c3278
jle 0x12c3344
push edx
pop edx
push ss
nop
out dx, al
inc ebp
jbe 0x12c3263
jnp 0x12c334d
jle 0x12c334f
xchg edi, eax
push esi
jle 0x12c3353
jle 0x12c3302
sub ebp, dword [edx]
and esi, ebp
sub ah, byte [ebx]
cmc
sti
jbe 0x12c335b
jle 0x12c335d
cmc
jmp 0x12c3354
jle 0x12c3382
jle 0x12c331c
push sp
pop edi
jle 0x12c3321
pop ebp
jbe 0x12c32c3
jle 0x12c338f
push edx
pop edx
das
xchg esi, eax
jnp 0x12c3394
jle 0x12c3396
xchg edi, eax
cmp dword [esi + edi*2 + 0x7e], edi
jle 0x12c3349
sub esi, ebx
adc bl, byte [edx + 0x7e]
adc bl, byte [edx + 0x7e]
jle 0x12c32a4
or dword [ebx], 0x760b8172
xchg esi, eax
or esi, dword [edx - 0x7f]
jb 0x12c32a7
or esi, dword [esi - 0x6a]
push es
jle 0x12c33aa
jle 0x12c3323
cmc
ret
std
xchg esi, eax
jnp 0x12c337d
jno 0x12c3343
xor byte [esi + 0x7e], bh
jle 0x12c33bf
jno 0x12c3345
div byte [esi]
jle 0x12c33d0
jle 0x12c33d0
jle 0x12c336c
sbb ch, dh
cmc
bound eax, qword [edi - 2]
test dword [esi + 0x7e64fa71], edx
jle 0x12c33de
cli
jle 0x12c33dd
jle 0x12c33dd
jle 0x12c335f
inc byte [ebp + 0x6ffa7197]
jle 0x12c33e6
test dword [edi + 0x7e6ffa71], edx
jle 0x12c33e7
jle 0x12c3382
sbb bh, bh
test dword [ecx + 0x6bfa715b], eax
jle 0x12c33f1
inc dword [ebp - 0x58ea47f]
imul edi, dword [esi + 0x7e], 0x7e
aas
sbb dword [ebx + 0x71], 0x7e7e6bfa
jle 0x12c33b4
xchg edi, eax
mov dl, 0x81
add dword [ecx + 0x7f473257], 0xfd7bbffd
inc edi
jg 0x12c337c
mov edi, 0x7a96fd7b
xchg edi, eax
xchg esi, eax
jp 0x12c331c
ret
mov edi, 0x7a94fd78
std
js 0x12c338e
xchg esp, eax
jp 0x12c3391
xchg esi, eax
jnp 0x12c332e
xchg edi, eax
aad 0x81
add dword [ecx - 0xca5ad0b], 0xbc7a5a1a
jb 0x12c3423
sbb bl, byte [edx + 0x7a]
mov esp, 0xf52b7e72
sub esi, ebp
xchg edx, eax
sub byte [ecx], ch
sub esi, ebp
or esi, dword [edx - 0xb]
add esi, dword [esi - 0x7e]
int3
hlt
mov ecx, 0x7e7e7e7f
lds edi, [esi + edi*2 + 0x7e]
jle 0x12c3446
jle 0x12c3446
lodsb al, byte [esi]
jno 0x12c33c8
jnp 0x12c344d
jle 0x12c344f
jle 0x12c33c6
hlt
push 0x71ac6c38
std
cmpsb byte [esi], byte es:[edi]
add dword [ecx + 0x71ac7c81], 0x7e7e7bfb
cmp dword [esp + ebp*4 + 0x71], 0x7e7e7bfb
lodsb al, byte [esi]
jno 0x12c33db
jnp 0x12c3460
jle 0x12c3462
jle 0x12c33d9
hlt
push 0x71ac6c38
cmp byte [esp + ebp*4 + 0x71], ch
insb byte es:[edi], dx
lodsb al, byte [esi]
jno 0x12c33e8
std
adc al, 0x7e
jle 0x12c346d
jle 0x12c346c
jle 0x12c343d
dec ebp
mov esi, 0xfb71ac7c
jl 0x12c339f
jno 0x12c33f0
jnp 0x12c3475
jle 0x12c3477
hlt
hlt
mov esi, 0xfb71ac7c
lodsb al, byte [esi]
jno 0x12c3421
jnp 0x12c34a6
jle 0x12c34a8
hlt
insb byte es:[edi], dx
lodsb al, byte [esi]
insd dword es:[edi], dx
mov esi, 0x7e78fa71
jno 0x12c343c
js 0x12c34c2
jle 0x12c34c4
cmc
mov eax, dword [0x7df4a655]
idiv byte [ecx + 0x39]
jns 0x12c3488
lds edi, [esi + edi*2 + 0x7e]
jle 0x12c33ec
push cs
add dword [ecx + 0x7e7fc681], 0xac7c7e7e
jle 0x12c34db
lodsb al, byte [esi]
jno 0x12c345d
jnp 0x12c34e2
jle 0x12c34e4
hlt
mov esi, 0xfb71ac7c
jl 0x12c341b
jno 0x12c346c
jnp 0x12c34f1
jle 0x12c34f3
hlt
cmp byte [esp + ebp*4 + 0x71], ch
cld
mov al, byte [0x55818181]
mov ebp, 0x7e7e7fc5
jle 0x12c34f9
sti
dec edx
jle 0x12c350a
jle 0x12c3455
jg 0x12c350e
jle 0x12c3510
jle 0x12c350f
jl 0x12c3440
lodsb al, byte [esi]
jno 0x12c3491
jnp 0x12c3516
jle 0x12c3518
hlt
lodsb al, byte [esi]
insd dword es:[edi], dx
mov bh, 0x7c
lodsb al, byte [esi]
jno 0x12c34a0
jnp 0x12c3525
jle 0x12c3526
jle 0x12c3527
jle 0x12c349e
hlt
push 0x71ac6c38
cld
mov al, byte [0x28818181]
cmc
mov dword [ebp - 0x75], edx
invalid
fisub dword [eax]
xchg edi, eax
jbe 0x12c3440
add dword [ecx + 0x769ebf36], 0xf53878f4
mov edi, 0x78f4769e
cmp ch, dh
jbe 0x12c34ba
js 0x12c3500
cmc
xchg esi, eax
invalid
lodsb al, byte [esi]
insd dword es:[edi], dx
mov bh, 0x7c
lodsb al, byte [esi]
jno 0x12c34dd
jnp 0x12c3562
jle 0x12c3564
hlt
inc dword [esi + 0x7e7e037e]
jle 0x12c34f8
jle 0x12c3575
jmp dword [edi - 0x7e7e7e7f]
cmpsd dword [esi], dword es:[edi]
add dword [ecx - 0x79007e7f], 0x7e7e7b7e
jnp 0x12c3580
jle 0x12c3503
jmp dword [edi - 0x7e7e7e7f]
cmpsd dword [esi], dword es:[edi]
add dword [ecx - 0x79007e7f], 0x7e7e7efe
xchg dh, bh
jle 0x12c358c
jle 0x12c350f
jmp [edi + 0x7e7e7e7e]
scasd eax, dword es:[edi]
jle 0x12c3591
jle 0x12c3593
inc dword [esi + 0x7e7e7efe]
xchg dh, bh
jle 0x12c3598
jle 0x12c351b
jmp [edi + 0x7e7e7e7e]
scasd eax, dword es:[edi]
jle 0x12c359d
jle 0x12c359f
sub ch, dh
mov dword [ebp - 0x72], edx
mov cs, word [ebp - 0x1a68df26]
add byte [ecx + 0x3878f481], 0x4d
invalid
fisub dword [eax]
xchg edi, eax
in eax, 0x80
add dword [ecx + 0x4d3878f4], 0x7f96beb7
jno 0x12c3532
mov bh, 0xbe
xchg esi, eax
jg 0x12c35a8
cli
jle 0x12c35b9
jle 0x12c353c
jmp [edi + 0x7e7e7e7c]
scasd eax, dword es:[edi]
jl 0x12c35be
jle 0x12c35c0
cmc
xchg esi, eax
sub ch, dh
mov dword [ebp - 0x72], edx
invalid
jbe 0x12c35e2
and dword [eax], esp
xchg edi, eax
jp 0x12c35e7
jle 0x12c35e9
xchg edi, eax
inc esp
sbb eax, 0x4c42c648
xchg edx, eax
jle 0x12c35f2
mov ebx, 0x7d27beff
jle 0x12c35fa
invalid
jle 0x12c3546
mov eax, dword [0x4ea141aa]
outsb dx, byte [esi]
aaa
jno 0x12c3587
mov byte [ecx + 0x7a978181], al
jle 0x12c3612
jp 0x12c3611
jle 0x12c3613
jle 0x12c35c9
xor ebp, dword [edi + 1]
outsd dx, dword [esi]
add eax, eax
pop edi
shl byte [esi], 0x5f
push esi
sub dl, dh
popfd
push esi
sub bl, byte [0xa1a10196]
mov eax, dword [0x7f2a5fa2]
aaa
sub dl, cl
popfd
aaa
sub ah, byte [0xa1a19591]
mov eax, dword [0xf62a798a]
mov eax, dword [0xd82a5826]
mov bh, byte [ecx + 0x2a]
mul byte [ecx - 0x27d5a7da]
pop eax
sub bl, al
movsd dword es:[edi], dword [esi]
pop eax
and byte [ebx - 0x5f], bl
mov eax, dword [0x25aea1a1]
out 0xa1, eax
mov eax, dword [0x2077a2a1]
test ax, 0xa1a1
mov eax, dword [0xa1a94820]
mov eax, dword [0xa15820a1]
mov eax, dword [0xe725aea1]
mov eax, dword [0x77a2a1a1]
and byte [esi - 0x57], ah
mov eax, dword [0x4820a1a1]
test eax, 0x20a1a1a1
pop eax
mov eax, dword [0xaea1a1a1]
and eax, 0x5e5e5e71
mov eax, dword [0x25aea1a1]
jno 0x12c3647
pop esi
pop esi
invalid
inc ecx
scasb al, byte es:[edi]
and byte [ecx - 0x5e], bl
mov eax, dword [0x24aea1a1]
lodsb al, byte [esi]
scasb al, byte es:[edi]
and al, 0xac
mov eax, dword [0x2ac7a1a1]
cmpsb byte [esi], byte es:[edi]
and byte [ecx + 0x5e], al
scasb al, byte es:[edi]
mov eax, dword [0xa063a2a1]
mov ecx, 0x6622e8e8
mov dword [0x5e5e6948], eax
pop esi
dec eax
movsd dword es:[edi], dword [esi]
mov eax, dword [0x1347a1a1]
mov esp, 0x939d1922
dec eax
imul ebx, dword [esi + 0x5e], 0xa1a5485e
mov eax, dword [0xbc1347a1]
and bl, byte [ecx]
popfd
xchg ebx, eax
dec ebp
mov eax, dword [0x612064a2]
stosd dword es:[edi], eax
movsd dword es:[edi], dword [esi]
mov eax, dword [0xa05418a1]
mov eax, dword [0xb5351ba1]
cmpsd dword [esi], dword es:[edi]
cli
xchg ecx, eax
mov cl, 0xe1
call 0x5f835aed
pop esi
pop esi
dec eax
movsd dword es:[edi], dword [esi]
mov eax, dword [0xafb6a1a1]
scasd eax, dword es:[edi]
lcall 0x289, 0xbe094bbe
mov ch, 0x35
xor eax, 0xb6cb3635
dec edx
cmp dword [0x358eb13a], esi
xor eax, 0x3972be35
retf 0xa9a0