Function at 0x421fc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov dword [esp + 0x14], 0
mov dword [esp], 0x80b0a0d
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov eax, 0xffc01203
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x3fedfd]
xor ecx, eax
mov edx, ecx
xor edx, 0x10
and ecx, 0x6f
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + eax + 0x3fedfd], cl
inc eax
cmp eax, 0xffc0120a
jne 0x421ff0
mov eax, dword [esp]
mov ecx, dword [0x44a87c]
test ecx, ecx
je 0x422064
xor edx, edx
mov esi, dword [0x44a880]
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x422040
inc edx
cmp ecx, edx
jne 0x422030
jmp 0x422064
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x422064
lea eax, [esp + 0x14]
push eax
push 0
push 0
push 5
push 0x10
push ecx
push dword [0x44a884]
call fcn.004395d0
add esp, 0x1c
mov dword [esp], 0x5392918c
xor ecx, ecx
nop
nop
nop
mov edx, ecx
add dl, 0x9c
xor dl, byte [esp + ecx]
add dl, 0xf4
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 4
jne 0x422070
cmp eax, dword [esp]
jne 0x422110
push dword [esp + 0x14]
call fcn.00436690
add esp, 4
mov ebp, eax
mov ecx, dword [esp + 0x14]
mov dword [esp], 0x80b0a0d
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov eax, 0xffc01203
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x3fedfd]
xor edx, eax
mov esi, edx
xor esi, 0x10
and edx, 0x6f
add edx, edx
sub edx, esi
inc dl
mov byte [esp + eax + 0x3fedfd], dl
inc eax
cmp eax, 0xffc0120a
jne 0x4220c0
mov eax, dword [esp]
mov edx, dword [0x44a87c]
test edx, edx
je 0x422136
xor esi, esi
mov edi, dword [0x44a880]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x422117
inc esi
cmp edx, esi
jne 0x422100
jmp 0x422136
xor ebx, ebx
jmp 0x4222d9
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x422136
push 0
push ecx
push ebp
push 5
push 0x10
push edx
push dword [0x44a884]
call fcn.004395d0
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x4222d0
mov esi, dword [ebp]
xor eax, eax
mov ecx, esi
mov edx, ebp
nop
nop
nop
nop
nop
nop
nop
lea edi, [edx + ecx]
mov ecx, dword [edx + ecx]
add eax, 0x208
add ebx, 0x104
mov edx, edi
test ecx, ecx
jne 0x422150
test ebx, ebx
jns 0x422170
mov eax, 0xffffffff
push eax
call fcn.00408740
add esp, 4
mov edi, eax
mov ecx, ebp
jmp 0x422190
add ecx, esi
mov word [edi], 0xa
add edi, 2
mov esi, dword [ecx]
test esi, esi
je 0x4221b3
mov edx, dword [ecx + esi + 0x3c]
movzx ebx, word [edx]
test bx, bx
je 0x422180
add edx, 2
nop
mov word [edi], bx
add edi, 2
movzx ebx, word [edx]
add edx, 2
test bx, bx
jne 0x4221a0
jmp 0x422180
xor ebx, ebx
cmp edi, eax
je 0x4222c7
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x42221b
mov esi, eax
add esi, 2
xor ebx, ebx
jmp 0x4221ec
inc ebx
movzx ecx, word [esi]
add esi, 2
test cx, cx
je 0x42221b
cmp cx, 0x7f
jbe 0x4221e0
movzx edx, cx
cmp edx, 0x7ff
ja 0x422210
add ebx, 2
jmp 0x4221e1
cmp cx, 0xffff
je 0x4221e1
add ebx, 3
jmp 0x4221e1
mov dword [esp + 0x1c], ebp
mov ebp, eax
lea edi, [ebx + 1]
push edi
call fcn.00408740
add esp, 4
mov esi, eax
mov dword [esp + 0x18], ebp
push ebp
push edi
push eax
call fcn.004211f0
add esp, 0xc
mov dword [esp], 0xd82517f8
mov dword [esp + 4], 0xde2d2ad9
mov dword [esp + 8], 0x2722e32f
mov word [esp + 0xc], 0xbd20
mov dword [esp + 0xe], 0
mov byte [esp + 0x12], 0
xor eax, eax
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax]
mov edx, eax
xor edx, 0x38d41de2
lea ebp, [eax + eax]
mov ecx, ebp
and ecx, 0x3a
sub ecx, edx
lea edx, [ecx + ecx]
not edx
add edx, ecx
xor edx, ecx
and edx, edi
xor edx, ecx
add dl, 0x6a
mov byte [esp + eax], dl
and ebp, 2
xor eax, 1
add eax, ebp
cmp eax, 0x13
jb 0x422270
mov eax, esp
mov ecx, dword [esp + 0x34]
push ebx
push esi
push eax
call fcn.004094c0
mov ebx, eax
push esi
call fcn.00408750
add esp, 4
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push eax
call fcn.00408750
add esp, 4
push ebp
call fcn.00436720
add esp, 4
mov eax, ebx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret