Function at 0x4866d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov dword [esp], ecx
mov eax, dword [esp]
mov ecx, dword [eax + 0x60]
mov eax, ecx
xor eax, 0xfffffeff
and eax, ecx
mov ecx, dword [0x5cffc0]
mov esi, dword [0x5cffc4]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ecx
test ecx, edx
sete cl
mov edx, 0xc80cdb51
mov edi, 0xebda5498
cmove edi, edx
mov dword [esp + 0x34], esi
cmp esi, 0xa
mov esi, 0xebda5498
cmovge edi, esi
setl ch
xor ch, cl
cmovne edi, edx
mov dword [esp + 0x28], edi
mov ecx, dword [0x5d00a8]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
setne cl
cmp dword [0x5d00ac], 0xa
setge dl
mov ch, dl
xor ch, cl
or dl, cl
xor dl, 1
or dl, ch
mov edx, 0x5eba71d8
mov ecx, 0xb68bb655
cmove edx, ecx
mov dword [esp + 0x24], edx
mov ebp, 0x4565b543
cmove ebp, ecx
mov edx, 0x7381ade2
mov ecx, 0x812756c
cmove edx, ecx
mov dword [esp + 0x20], edx
mov edx, 0x78c2da8e
cmove edx, ecx
mov dword [esp + 0x1c], edx
mov edx, 0x85e566fe
mov ecx, 0xa6d95f06
cmove edx, ecx
mov dword [esp + 0x18], edx
mov edx, 0xb61b351
cmove edx, ecx
mov dword [esp + 0x14], edx
mov edx, 0xd13bbbbc
mov ecx, 0xf8f4e9b6
cmove edx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x38], eax
mov edi, 0x9778f6ec
cmove edi, ecx
mov ecx, 0xc24e8301
mov dword [esp + 0xc], edx
jmp 0x4867f0
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, 0x4565b543
nop word [eax + eax]
mov esi, ecx
cmp ecx, 0x68b7d7c
jg 0x486850
cmp esi, 0xba54ae6c
jle 0x4868b0
cmp esi, 0xd6a0b47e
jg 0x48694b
cmp esi, 0xc24e8300
jle 0x486a23
cmp esi, 0xc24e8301
je 0x486a6a
mov ecx, esi
cmp esi, 0xd13bbbbc
jne 0x4867f0
cmp byte [esp + 4], 0
mov ecx, 0x1322c57c
mov edx, 0x15082ea4
cmovne ecx, edx
jmp 0x4867f0
cmp esi, 0x15ab67e8
jg 0x486900
cmp esi, 0xe48d184
jg 0x486981
mov ecx, edi
cmp esi, 0x68b7d7d
je 0x4867f0
cmp esi, 0x812756c
je 0x486a81
mov ecx, esi
cmp esi, 0xb61b351
jne 0x4867f0
mov ecx, dword [esp]
mov esi, dword [esp]
mov ecx, dword [ecx]
cmp ecx, dword [esi + 0x50]
sete byte [esp + 5]
mov ecx, dword [esp + 0x18]
jmp 0x4867f0
cmp esi, 0xafec4309
jg 0x4869b2
cmp esi, 0x85e566fe
je 0x486a8e
cmp esi, 0x9778f6ec
je 0x486aa5
mov ecx, esi
cmp esi, 0xa6d95f06
jne 0x4867f0
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, 0xb61b351
jmp 0x4867f0
cmp esi, 0x5eba71d7
jg 0x4869e1
cmp esi, 0x15ab67e9
je 0x486abe
cmp esi, 0x17664369
je 0x486acc
mov ecx, esi
cmp esi, 0x4565b543
jne 0x4867f0
mov ecx, dword [esp]
mov esi, dword [esp]
mov ecx, dword [ecx]
cmp ecx, dword [esi + 0x50]
sete byte [esp + 8]
mov ecx, dword [esp + 0x24]
jmp 0x4867f0
cmp esi, 0xd6a0b47f
je 0x486af4
cmp esi, 0xe291b544
je 0x486b16
mov ecx, esi
cmp esi, 0xf8f4e9b6
jne 0x4867f0
mov ecx, dword [esp]
mov ecx, dword [esp]
mov ecx, 0x9778f6ec
jmp 0x4867f0
cmp esi, 0xe48d185
je 0x486b22
mov ecx, ebp
cmp esi, 0x1322c57c
je 0x4867f0
mov ecx, esi
cmp esi, 0x15082ea4
jne 0x4867f0
mov ecx, dword [esp + 0x14]
jmp 0x4867f0
cmp esi, 0xafec430a
je 0x486b45
cmp esi, 0xb68bb655
je 0x4867dc
mov ecx, esi
cmp esi, 0xb70c4d33
jne 0x4867f0
mov ecx, dword [esp + 0x1c]
jmp 0x4867f0
cmp esi, 0x5eba71d8
je 0x486bcd
cmp esi, 0x7381ade2
je 0x486be4
mov ecx, esi
cmp esi, 0x78c2da8e
jne 0x4867f0
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x60]
not ecx
or ecx, 0xfffffff7
cmp ecx, 0xffffffff
sete byte [esp + 6]
mov ecx, dword [esp + 0x20]
jmp 0x4867f0
cmp esi, 0xba54ae6d
jne 0x486c29
mov eax, dword [esp]
mov eax, dword [eax]
movzx eax, byte [eax - 1]
cmp byte [eax + 0x5b769c], 0
setne cl
sete ah
mov esi, dword [esp]
mov esi, dword [esi]
movzx esi, byte [esi]
cmp byte [esi + 0x5b769c], 0
sete al
setne ch
and ch, ah
and al, cl
or al, ch
mov ecx, 0xc0ba0070
jmp 0x4867f0
cmp dword [esp + 0x38], 0
mov ecx, 0x15082ea4
mov edx, 0x68b7d7d
cmove ecx, edx
jmp 0x4867f0
mov ecx, dword [esp]
mov ecx, 0x78c2da8e
jmp 0x4867f0
cmp byte [esp + 5], 0
mov ecx, 0xba54ae6d
mov esi, 0xb70c4d33
cmovne ecx, esi
jmp 0x4867f0
mov ecx, dword [esp]
mov esi, dword [esp]
mov ecx, dword [ecx]
cmp ecx, dword [esi + 0x4c]
setne byte [esp + 4]
mov ecx, dword [esp + 0x10]
jmp 0x4867f0
mov ecx, 0xc0ba0070
mov eax, dword [esp + 0xc]
jmp 0x4867f0
mov ecx, dword [esp]
mov ecx, dword [ecx]
movzx ecx, byte [ecx - 1]
cmp byte [ecx + 0x5b769c], 0
setne byte [esp + 7]
mov ecx, 0x15ab67e9
movzx edx, byte [esp + 7]
mov dword [esp + 0xc], edx
jmp 0x4867f0
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x60]
not ecx
or ecx, 0xfffffffb
cmp ecx, 0xffffffff
mov ecx, 0xe291b544
mov edx, 0xe48d185
cmove ecx, edx
xor ebx, ebx
jmp 0x4867f0
mov ecx, 0xc0ba0070
mov eax, ebx
jmp 0x4867f0
mov ecx, dword [esp]
mov ecx, dword [ecx]
movzx ecx, byte [ecx]
cmp byte [ecx + 0x5b769c], 0
setne byte [esp + 9]
mov ecx, 0xe291b544
movzx ebx, byte [esp + 9]
jmp 0x4867f0
mov eax, dword [esp + 0x2c]
test dword [esp + 0x30], eax
sete byte [esp + 0xa]
cmp dword [esp + 0x34], 0xa
setl byte [esp + 0xb]
mov eax, 0x23bde65
nop word cs:[eax + eax]
cmp eax, 0x23bde64
jg 0x486b90
cmp eax, 0xc80cdb51
je 0x486c03
cmp eax, 0xebda5498
jne 0x486b70
mov eax, 0x306d976
jmp 0x486b70
cmp eax, 0x306d976
je 0x486bc7
cmp eax, 0x23bde65
jne 0x486b70
movzx ecx, byte [esp + 0xa]
movzx eax, byte [esp + 0xb]
mov ah, cl
xor ah, al
mov esi, 0xebda5498
mov edx, 0x306d976
cmovne esi, edx
test al, al
mov eax, esi
cmovne eax, edx
test cl, cl
cmove eax, esi
jmp 0x486b70
mov eax, dword [esp + 0x28]
jmp 0x486b70
cmp byte [esp + 8], 0
mov ecx, 0xd6a0b47f
mov edx, 0xafec430a
cmovne ecx, edx
jmp 0x4867f0
cmp byte [esp + 6], 0
mov ecx, 0x15ab67e9
mov edx, 0x17664369
cmovne ecx, edx
mov dword [esp + 0xc], 0
jmp 0x4867f0
mov dword [esp + 0x3c], 0xc
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x60]
xor eax, ecx
andn eax, eax, ecx
sete al
mov ecx, 0xc0ba0070
jmp 0x4867f0
mov ecx, esi
cmp esi, 0xc0ba0070
jne 0x4867f0
and al, 1
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret