Function at 0x4208fa
Capabilities:
Encode data using xor

Disassembly:
movzx eax, byte [0x42bbce]
sub esp, 0x2c
xor eax, 0xd9845961
imul eax, eax, 0x5972fe78
push ebx
push ebp
push esi
push edi
mov dword [0x42bbe8], eax
call fcn.004206a8
mov ecx, eax
call fcn.00422383
mov ecx, dword [0x42bbe8]
sub dword [0x42bbe4], 0x62ba97b6
and ecx, 0xce7a83b8
mov dword [0x42bbe8], ecx
test eax, eax
jne 0x420962
lea eax, [ecx - 0x420c]
mov word [0x42bc00], ax
movzx eax, ax
or eax, 0x59ffb1f5
mov dword [0x42bbe8], eax
jmp 0x420e97
movzx eax, byte [0x42bbce]
movzx ecx, byte [0x42bbce]
and eax, 0x4e1bd9e4
mov dword [0x42bbe4], eax
mov eax, 0xdc3c
imul ecx, eax
push 0x400
mov word [0x42bc00], cx
call fcn.0040570b
movzx edx, word [0x42bc00]
mov edi, eax
pop ecx
mov ecx, 0x2925
mov dword [esp + 0x28], edi
imul edx, ecx
mov eax, 0x1b33
movzx ecx, byte [0x42bbce]
sub dx, ax
imul eax, ecx, 0x6b
mov word [0x42bc00], dx
mov byte [0x42bbce], al
test edi, edi
je 0x420e97
movzx eax, al
lea esi, [edi + 2]
mov ecx, 0x62e2
mov word [esp + 0x14], 0x7c
add ax, cx
mov byte [0x42bbd8], 0x9c
mov word [0x42bc00], ax
mov ebx, 0x428eb0
mov eax, dword [0x42bbe8]
xor eax, 0xe5de41bf
mov dword [0x42bbe0], 0x4c80
mov dword [esp + 0x2c], eax
movzx eax, byte [0x42bbfc]
imul eax, eax, 0xfecfac74
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], 3
and eax, 0xcd695f1
imul edx, eax, 0xcec39b63
mov eax, 0xa19c
mov word [0x42bbf4], ax
mov eax, 0x428eb2
sub eax, edi
mov dword [esp + 0x20], eax
mov edi, eax
lea eax, [edx + 0xe18b6f8]
mov ebp, 0xc6ef3720
mov edx, dword [ebx]
mov ebx, dword [edi + esi]
push 0x20
mov dword [esp + 0x28], eax
pop edi
mov ecx, edx
mov eax, edx
shl ecx, 4
shr eax, 5
sub ecx, 0xe12c659
sub eax, 0x708752df
xor ecx, eax
lea eax, [edx + ebp]
xor ecx, eax
sub ebx, ecx
mov ecx, ebx
mov eax, ebx
shr ecx, 5
shl eax, 4
sub ecx, 0x338d5834
add eax, 0x36ee8555
xor ecx, eax
lea eax, [ebx + ebp]
xor ecx, eax
lea ebp, [ebp + 0x61c88647]
sub edx, ecx
sub edi, 1
jne 0x420a61
mov edi, dword [esp + 0x20]
mov eax, edx
shr eax, 8
mov byte [esi - 1], al
mov eax, edx
shr eax, 0x10
mov byte [esi], al
mov eax, dword [esp + 0x24]
movzx ecx, al
mov eax, ebx
shr eax, 8
and ecx, 0x6c
mov byte [esi - 2], dl
shr edx, 0x18
mov byte [esi + 2], bl
mov byte [esi + 3], al
mov eax, ebx
shr ebx, 0x18
mov byte [esi + 1], dl
lea edx, [ecx + 0x2938680c]
mov byte [esi + 5], bl
and ecx, 0x14360048
mov ebx, dword [esp + 0x18]
or ecx, 0x21090406
shr eax, 0x10
add ebx, 8
mov byte [esi + 4], al
xor edx, 0xab158c61
add esi, 8
mov dword [0x42bbd0], 0x3ee546c8
sub dword [esp + 0x1c], 1
mov dword [0x42bbd4], ecx
mov dword [esp + 0x18], ebx
jne 0x420a4a
mov edi, dword [esp + 0x28]
add edx, 0x2dc98d14
movzx eax, cl
mov cl, 0x68
imul eax, eax, 0x2c
and dword [esp + 0x20], 0
mov dword [0x42bc04], edx
mov byte [edi + 0x18], 0
sub cl, al
mov byte [0x42bbfc], cl
mov ecx, dword [esp + 0x2c]
add ecx, 0x656e1afb
mov al, cl
mov dword [0x42bbe8], ecx
or al, 0x34
mov byte [0x42bbce], al
lea eax, [ecx + 0x7f722718]
mov dword [0x42bbe4], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x18]
push eax
push edi
call fcn.00405d9c
mov ecx, dword [0x42bbe4]
mov esi, eax
add esp, 0xc
lea ebx, [ecx + 0x48]
mov byte [0x42bbce], bl
test esi, esi
je 0x420e78
movzx eax, word [0x42bc00]
mov ecx, 0xd00e
imul edx, eax, 0xbb2070ef
imul eax, dword [0x42bbe8], 0x3b37
mov dword [0x42bbe4], edx
and dl, 0xb9
sub ecx, eax
mov byte [0x42bbce], dl
movzx eax, bl
lea edx, [esp + 0x30]
mov word [0x42bc00], cx
or eax, 0xe5e5f696
mov ecx, esi
mov dword [0x42bbe8], eax
call fcn.0041d342
mov cx, word [0x42bc00]
test al, al
je 0x420e17
mov al, byte [0x42bbe8]
add al, 3
mov byte [0x42bbce], al
mov eax, 0xe431
or cx, ax
imul eax, dword [0x42bbe4], 0xf4a5ad8f
mov word [0x42bc00], cx
mov dword [0x42bbe4], eax
movzx eax, cx
add eax, 0x6bb7809a
mov dword [0x42bbe8], eax
call fcn.00421053
movzx eax, byte [0x42bbe8]
mov ecx, 0x687f
imul eax, eax, 0x3a
mov byte [0x42bbce], al
movzx eax, al
sub ax, cx
lea ecx, [esp + 0x30]
mov word [0x42bc00], ax
call fcn.0040fe8e
mov eax, dword [0x42bbe4]
lea ecx, [esp + 0x30]
add eax, 0xffff9e48
mov word [0x42bc00], ax
movzx eax, byte [0x42bbce]
imul eax, eax, 0xf8d224d2
mov dword [0x42bbe8], eax
call fcn.00417d36
or dword [0x42bbe4], 0x9a398512
call fcn.0041f843
mov al, byte [0x42bc00]
xor al, 0xe4
cmp byte [esp + 0x38], 0
mov byte [0x42bbce], al
je 0x420ccf
or dword [0x42bbe4], 0x5147df53
movzx ecx, al
mov eax, 0x2db2
imul ecx, eax
mov word [0x42bc00], cx
call fcn.0041769f
cmp byte [esp + 0x39], 0
je 0x420d04
mov eax, dword [0x42bbe8]
mov cl, byte [0x42bbe4]
add eax, 0x1277
mov word [0x42bc00], ax
movzx eax, cl
or eax, 0xd7306fe1
mov byte [0x42bbce], cl
mov dword [0x42bbe8], eax
call fcn.00417040
mov ecx, dword [0x42bbe4]
mov ebx, ecx
xor ebx, 0x159b
add ebx, 0x68ef
cmp byte [esp + 0x37], 0
mov word [0x42bc00], bx
je 0x420d5c
movzx edx, bx
mov cl, 0x51
mov eax, edx
or edx, 0x85aace71
or eax, 0xc8165878
mov dword [0x42bbe4], edx
mov dword [0x42bbe8], eax
movzx eax, bl
imul eax, eax, 0x11
sub cl, al
mov byte [0x42bbce], cl
call fcn.0041ee1e
mov ecx, dword [0x42bbe4]
mov al, cl
add ecx, 0x265a3474
xor al, 0x6d
mov dword [0x42bbe4], ecx
mov byte [0x42bbce], al
movzx eax, al
or eax, 0xe3e3478
mov dword [0x42bbe8], eax
call fcn.0041bd4b
mov cx, word [0x42bc00]
mov al, cl
and al, 0x87
mov byte [0x42bbce], al
movzx eax, cx
or eax, 0xc38a881c
mov dword [0x42bbe8], eax
mov eax, dword [0x42bbe4]
and eax, 0x2cef
mov word [0x42bc00], ax
call fcn.00415f88
imul eax, dword [0x42bbe8], 0x1ef9a29f
mov ecx, 0x8ad1fc3b
and dword [0x42bbe4], 0xaed74388
push 5
sub ecx, eax
mov dword [0x42bbe8], ecx
pop ecx
call fcn.0041ebdb
mov eax, dword [0x42bbe8]
or eax, 0xa2513dce
mov dword [0x42bbe4], eax
call fcn.0041b338
mov al, byte [0x42bbe8]
add al, 0x51
mov byte [0x42bbce], al
call fcn.0041b04d
mov dl, byte [0x42bbce]
mov eax, dword [0x42bbe4]
mov cx, word [0x42bc00]
jmp 0x420e2d
movzx eax, byte [0x42bbe8]
imul edx, eax, 0xd0
movzx eax, cx
imul eax, eax, 0x92a8f653
add eax, 0xf40955e8
sub cl, 0x2f
mov dword [0x42bbe8], eax
movzx eax, dl
and eax, 0x649efdf1
mov byte [0x42bbce], cl
mov dword [0x42bbe4], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x18]
push eax
push 0
call fcn.00405d9c
mov esi, eax
add esp, 0xc
test esi, esi
je 0x420e72
mov bl, byte [0x42bbce]
jmp 0x420ba1
mov ecx, dword [0x42bbe4]
mov eax, 0xa1cd
xor ecx, 0xf4eb7008
xor word [0x42bc00], ax
push edi
mov dword [0x42bbe8], ecx
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret