Function at 0x421170
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe30
mov esi, esp
push 0x1000
call fcn.004089b0
add esp, 4
mov dword [esi + 0x7f0], 0x738290b2
mov dword [esi + 0x7f4], 0x695e5541
mov word [esi + 0x7f8], 0xa584
mov dword [esi + 0x7fa], 0
mov dword [esi + 0x7fe], 0
mov byte [esi + 0x802], 0
mov dword [esi + 0x1f0], 0
mov ecx, dword [esi + 0x1f0]
cmp ecx, 0x12
ja 0x421217
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x1f0]
mov ecx, dword [esi + 0x1f0]
add dl, 0xe6
xor dl, byte [esi + ecx + 0x7f0]
add dl, 0xb6
mov ecx, dword [esi + 0x1f0]
mov byte [esi + ecx + 0x7f0], dl
inc dword [esi + 0x1f0]
mov ecx, dword [esi + 0x1f0]
cmp ecx, 0x13
jb 0x4211e0
mov dword [esi + 0x30], eax
mov eax, dword [str.72dcdaf15dd1f72018dbb230c04a0ee9]
mov dword [esi + 0x540], 0xb4928062
mov dword [esi + 0x544], 0xdedcc3c3
mov dword [esi + 0x548], 0xdaccc0df
mov dword [esi + 0x54c], 0xcdcdd0cc
mov word [esi + 0x550], 0x9d82
mov byte [esi + 0x552], 0x42
mov dword [esi + 0x553], 0
mov dword [esi + 0x557], 0
mov dword [esi + 0x55b], 0
mov dword [esi + 0x55f], 0
mov dword [esi + 0x563], 0
mov dword [esi + 0x567], 0
mov dword [esi + 0x1f0], 0
mov ecx, dword [esi + 0x1f0]
cmp ecx, 0x2a
ja 0x4212fa
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x1f0]
mov ecx, dword [esi + 0x1f0]
movzx edi, byte [esi + ecx + 0x540]
lea ecx, [edx + edi]
add ecx, 0xaad2670e
add edx, 0xaad2670e
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x9e
mov edx, dword [esi + 0x1f0]
mov byte [esi + edx + 0x540], cl
inc dword [esi + 0x1f0]
mov ecx, dword [esi + 0x1f0]
cmp ecx, 0x2b
jb 0x4212b0
mov ecx, dword [str.WpRU8v__]
mov dword [esi + 0x1f0], 0x1658b9bb
mov dword [esi + 0x1f4], 0xb51d
mov dword [esi + 0x1f8], 0x7fb25b1f
mov dword [esi + 0x1fc], 0x1b4ead73
mov dword [esi + 0x200], 0x6a1f1c05
mov dword [esi + 0x204], 0x10091212
mov dword [esi + 0x208], 0x56b81a12
mov dword [esi + 0x20c], 0x2a33499c
mov dword [esi + 0x210], 0x6979582d
mov dword [esi + 0x214], 0x2e3b7794
mov dword [esi + 0x218], 0x93782d24
mov dword [esi + 0x21c], 0x8f3c4c59
mov dword [esi + 0x220], 0x798a667a
mov dword [esi + 0x224], 0x9d6a7774
mov dword [esi + 0x228], 0x5a568175
mov dword [esi + 0x22c], 0x5f7e97a0
mov dword [esi + 0x234], 0
mov dword [esi + 0x230], 0
mov dword [esi + 0xa20], 0
mov edx, dword [esi + 0xa20]
cmp edx, 0x47
ja 0x421428
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0xa20]
mov edi, dword [esi + 0xa20]
movzx edi, byte [esi + edi + 0x1f0]
lea ebx, [edx + 0xc4]
and ebx, edi
add edx, edi
add ebx, ebx
sub edx, ebx
mov edi, 0xbd4dbbbb
sub edi, edx
add edx, 0x42b244c4
and edi, 0x5c
and edx, 0xa3
sub edx, edi
mov edi, dword [esi + 0xa20]
mov byte [esi + edi + 0x1f0], dl
inc dword [esi + 0xa20]
mov edx, dword [esi + 0xa20]
cmp edx, 0x48
jb 0x4213d0
movzx edx, byte [esi + 0x1f0]
mov ebx, dword [esi + 0x30]
test dl, dl
je 0x42144b
lea edi, [esi + 0x1f1]
mov ebx, dword [esi + 0x30]
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x421440
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0x42146b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x421460
mov byte [ebx], 0
movzx ecx, byte [esi + 0x540]
test cl, cl
je 0x42148b
lea edx, [esi + 0x541]
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x421480
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4214ab
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4214a0
mov byte [ebx], 0
movzx eax, byte [esi + 0x7f0]
test al, al
je 0x4214cb
lea ecx, [esi + 0x7f1]
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4214c0
mov byte [ebx], 0
push 0
call fcn.004357b0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [ecx*4 + 0x4407e4]
mov ecx, 0xa2948b9
xor ecx, dword [0x4407ec]
add ecx, edx
inc ecx
jmp ecx