Function at 0x4209d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe4
mov eax, dword [0x443d50]
mov dword [esp + 0x14], 0x3373316d
mov dword [esp + 0x18], 0x2fbe2dbc
mov dword [esp + 0x1c], 0x2b8b2994
mov dword [esp + 0x20], 0x278725a8
mov dword [esp + 0x24], 0x2322217d
mov dword [esp + 0x28], 0
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x58]
cmp ecx, 0x17
ja 0x420a7a
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x58]
movzx edx, byte [esp + edx + 0x14]
lea esi, [ecx - 0x159ad574]
lea edi, [ecx + edx]
add edi, 0xea652a8c
add ecx, 0x8c
or ecx, esi
and ecx, edx
mov edx, ecx
xor edx, edi
add edx, ecx
not ecx
and ecx, edi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0x44
mov edx, dword [esp + 0x58]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x18
jb 0x420a20
lea edi, [esp + 0x90]
lea esi, [esp + 0x14]
push edi
push 0
push 0
push 9
push esi
push 0
call eax
mov ebx, dword [esp + 0x90]
test ebx, ebx
jns 0x420aa3
mov eax, 0xffffffff
jmp 0x420aa6
lea eax, [ebx + ebx]
push eax
call fcn.00409690
add esp, 4
mov dword [esp + 0x4c], eax
mov eax, dword [0x443d50]
mov dword [esp + 0x14], 0x83c381e5
mov dword [esp + 0x18], 0x87368534
mov dword [esp + 0x1c], 0x8b2b89cc
mov dword [esp + 0x20], 0x8f2f8d38
mov dword [esp + 0x24], 0x939291f5
mov word [esp + 0x28], 0
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x58]
cmp ecx, 0x15
ja 0x420b3b
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x58]
movzx edx, byte [esp + edx + 0x14]
add ecx, 0xfb0daca0
xor ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0xe0
mov edx, dword [esp + 0x58]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x16
jb 0x420b00
push edi
push ebx
push dword [esp + 0x54]
push 9
push esi
push 0
call eax
mov dword [esp + 0x14], 0x31c53ff8
mov dword [esp + 0x18], 0x35d733c5
mov dword [esp + 0x1c], 0xc9c437c5
mov dword [esp + 0x20], 0xcdcacb2c
lea edx, [esp + 0x24]
mov word [esp + 0x24], 0
mov byte [esp + 0x26], 0
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x58]
cmp eax, 0x12
ja 0x420bc9
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
movzx ecx, byte [esp + ecx + 0x14]
add eax, 0x7446d7f5
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x37
mov ecx, dword [esp + 0x58]
mov byte [esp + ecx + 0x14], al
inc dword [esp + 0x58]
mov eax, dword [esp + 0x58]
cmp eax, 0x13
jb 0x420b90
lea eax, [esp + 0xd4]
lea esi, [esp + 0x14]
mov ecx, 4
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0xe4]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x14], 0x51a54f88
mov dword [esp + 0x18], 0x55b753a5
mov dword [esp + 0x1c], 0x59a457a5
mov dword [esp + 0x20], 0x5d9f5bbc
mov dword [esp + 0x24], 0x61b05fbf
mov dword [esp + 0x28], 0x65906383
mov dword [esp + 0x2c], 0x6966679f
lea esi, [esp + 0x30]
mov word [esp + 0x30], 0
mov byte [esp + 0x32], 0
mov dword [esp + 0x70], 0
mov ecx, dword [esp + 0x70]
cmp ecx, 0x1e
ja 0x420c85
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x70]
movzx edx, byte [esp + edx + 0x14]
add ecx, 0x920b1d0d
xor ecx, edx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x58]
add cl, 0xbf
mov edx, dword [esp + 0x70]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
cmp ecx, 0x1f
jb 0x420c50
lea edx, [esp + 0xb8]
lea ebx, [esp + 0x14]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xd4]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x14], 0x9ff799dc
mov dword [esp + 0x18], 0xa3c59deb
mov dword [esp + 0x1c], 0xa7d0a1d3
mov dword [esp + 0x20], 0xabfaa5c0
mov dword [esp + 0x24], 0xafe8a9fc
lea ebx, [esp + 0x28]
mov word [esp + 0x28], 0xadac
mov dword [esp + 0x2a], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x19
ja 0x420d35
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
movzx esi, byte [esp + esi + 0x14]
add ecx, 0xd741269a
xor ecx, esi
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x70]
add cl, 0xfe
mov esi, dword [esp + 0xc]
mov byte [esp + esi + 0x14], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1a
jb 0x420d00
lea esi, [esp + 0x58]
lea ebp, [esp + 0x14]
mov edi, esi
mov ecx, 5
xchg esi, ebp
rep movsd dword es:[edi], dword [esi]
xchg esi, ebp
lea edi, [esp + 0x6c]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], esi
mov eax, dword [esp + 0x4c]
add eax, 2
mov dword [esp + 0x98], eax
mov dword [esp + 0x80], 0
mov eax, dword [case.0x4201ab.58]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop