Function at 0x1ae020
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x19c
mov eax, dword [0x1f0888]
mov dword [esp + 0x11c], 0xf0e1108
mov byte [esp + 0x120], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x1ae0ad
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x11c]
mov esi, ecx
xor esi, 0xd012e542
and ecx, 0xd012e542
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov edx, ecx
not edx
and edx, 0x4a
and ecx, 0xb5
sub ecx, edx
mov edx, dword [esp]
mov byte [esp + edx + 0x11c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x1ae060
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x1c], 0x933b910f
mov dword [esp + 0x20], 0x9f369d0a
mov dword [esp + 0x24], 0x9b069904
mov dword [esp + 0x28], 0x87d08514
mov dword [esp + 0x2c], 0x8316812c
mov dword [esp + 0x30], 0x8f8e8d18
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x17
ja 0x1ae151
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x1c]
mov edi, edx
xor edi, 0xba3b0a24
and edx, 0x3a3b0a24
lea edx, [edi + edx*2]
lea edi, [edx + esi]
and edx, esi
add edx, edx
sub edi, edx
mov dword [esp], edi
mov edx, dword [esp]
mov esi, edx
xor esi, 0xb4
and edx, 0x4b
add edx, edx
sub edx, esi
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x1c], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x18
jb 0x1ae100
lea edx, [esp + 0x1c]
push ecx
push 0
push edx
call eax
mov ecx, 0x1f0850
push eax
call fcn.001e0740
movzx eax, al
mov eax, dword [eax*4 + 0x1eaa1c]
mov ecx, 0x153187f0
xor ecx, dword [0x1eaa24]
add eax, ecx
inc eax
jmp eax
std
test al, 0xff
mov dword [esi + 0x28], 0xfb5ef9a8
stc
pop esi
sti
mov dword [esi + 0x2c], 0xe77be553
mov dword [esi + 0x30], 0xe376e17c
mov dword [esi + 0x34], 0xef79ed7b
mov dword [esi + 0x38], 0xeb4ee943
mov dword [esi + 0x3c], 0xd744d564
mov dword [esi + 0x40], 0xd37cd147
mov dword [esi + 0x44], 0xdf4add75
mov dword [esi + 0x48], 0xdb49d975
mov dword [esi + 0x4c], 0xc771c560
mov dword [esi + 0x50], 0xc35ec15d
mov dword [esi + 0x54], 0xcf59cd58
mov dword [esi + 0x58], 0xcb61c95f
mov dword [esi + 0x5c], 0x376f3590
mov dword [esi + 0x60], 0x336d3163
mov dword [esi + 0x64], 0x3f7d3d61
mov dword [esi + 0x68], 0x3b743976
mov dword [esi + 0x6c], 0x277a2574
mov dword [esi + 0x70], 0x23712171
mov dword [esi + 0x74], 0x2f7f2d7d
mov dword [esi + 0x78], 0x2b862979
mov dword [esi + 0x7c], 0x17541547
mov dword [esi + 0x80], 0x134a1148
mov dword [esi + 0x84], 0x1f4e1d5d
mov dword [esi + 0x88], 0x1b4b1948
mov dword [esi + 0x8c], 0x75a0554
mov dword [esi + 0x90], 0x3500142
mov dword [esi + 0x94], 0xf500d4d
mov dword [esi + 0x98], 0xb550956
mov dword [esi + 0x9c], 0x77d2752a
mov word [esi + 0xa0], 0x7170
mov dword [esi + 0xa2], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0xa5
ja 0x1c6e48
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [esi + ecx]
mov edx, eax
xor edx, 0xa98771a4
and eax, 0x298771a4
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
add al, 0xcc
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0xa6
jb 0x1c6e00
mov eax, esi
mov edi, dword [ebp - 0x74]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0xa0]
mov ecx, 1
mov edi, dword [ebp - 0xa4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebp - 0xdc]
mov dword [esi], 0xe945eb57
mov dword [esi + 4], 0xed78ef4d
mov dword [esi + 8], 0xd147d37d
mov dword [esi + 0xc], 0xd57cd741
mov dword [esi + 0x10], 0xd966db40
mov dword [esi + 0x14], 0xdd74df69
mov dword [esi + 0x18], 0xc16dc376
mov dword [esi + 0x1c], 0xc56dc765
mov dword [esi + 0x20], 0xc99dcb78
mov dword [esi + 0x24], 0xcd9ccf9c
mov dword [esi + 0x28], 0x318e339c
mov dword [esi + 0x2c], 0x35ad3781
mov dword [esi + 0x30], 0x39963ba0
mov dword [esi + 0x34], 0x3daf3fa9
mov dword [esi + 0x38], 0x219e2391
mov dword [esi + 0x3c], 0x25b02790
mov dword [esi + 0x40], 0x29802bb5
mov dword [esi + 0x44], 0x2d822f87
mov dword [esi + 0x48], 0x11871387
mov dword [esi + 0x4c], 0x15a717ac
mov dword [esi + 0x50], 0x198e1b8f
mov dword [esi + 0x54], 0x1d8f1fb4
mov dword [esi + 0x58], 0x1af038d
mov dword [esi + 0x5c], 0x55907bc
mov dword [esi + 0x60], 0x9530b51
mov dword [esi + 0x64], 0xd4b0f53
mov dword [esi + 0x68], 0x71387346
mov dword [esi + 0x6c], 0x75227720
mov dword [esi + 0x70], 0x792f7b23
mov dword [esi + 0x74], 0x7d297f2f
mov dword [esi + 0x78], 0x61c6632b
mov dword [esi + 0x7c], 0x65206735
mov dword [esi + 0x80], 0x69326b3c
mov dword [esi + 0x84], 0x6d3e6f2f
mov dword [esi + 0x88], 0x5105533c
mov dword [esi + 0x8c], 0x55025700
mov dword [esi + 0x90], 0x590c5b12
mov dword [esi + 0x94], 0x5d045f1f
mov dword [esi + 0x98], 0x411b4306
mov dword [esi + 0x9c], 0x45fa471a
mov dword [esi + 0xa0], 0x4b44
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0xa3
ja 0x1c6fff
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [esi + ecx]
mov edx, eax
xor edx, 0x409308d7
and eax, 0xc09308d7
lea eax, [edx + eax*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
add al, 0xcd
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0xa4
jb 0x1c6fc0
mov eax, esi
mov edi, dword [ebp - 0x70]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0x98]
mov ecx, 1
mov edi, dword [ebp - 0x9c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebp - 0xd4]
mov dword [esi], 0xb1e58fc3
mov dword [esi + 4], 0xb520b3d5
mov dword [esi + 8], 0xb923b725
mov dword [esi + 0xc], 0xbddcbb29
mov dword [esi + 0x10], 0xa1c2bf28
mov dword [esi + 0x14], 0xa5c4a3d1
mov dword [esi + 0x18], 0xa9cda7c2
mov dword [esi + 0x1c], 0xadcdabcd
mov dword [esi + 0x20], 0xd1fdafd0
mov dword [esi + 0x24], 0xd5fcd387
mov dword [esi + 0x28], 0xd9aad784
mov dword [esi + 0x2c], 0xdd4ddba9
mov dword [esi + 0x30], 0xc1b2df48
mov dword [esi + 0x34], 0xc553c351
mov dword [esi + 0x38], 0xc9bac7a9
mov dword [esi + 0x3c], 0xcd58cbb8
mov dword [esi + 0x40], 0xf1a8cf5d
mov dword [esi + 0x44], 0xf59ef39b
mov dword [esi + 0x48], 0xf963f793
mov dword [esi + 0x4c], 0xfd8bfb84
mov dword [esi + 0x50], 0xe16aff6b
mov dword [esi + 0x54], 0xe573e38c
mov dword [esi + 0x58], 0xe98be775
mov dword [esi + 0x5c], 0xedb1eb94
mov dword [esi + 0x60], 0x11b7efb9
mov dword [esi + 0x64], 0x15571347
mov dword [esi + 0x68], 0x19501752
mov dword [esi + 0x6c], 0x1d4e1b48
mov dword [esi + 0x70], 0x14b1f4f
mov dword [esi + 0x74], 0x5510353
mov dword [esi + 0x78], 0x9620757
mov dword [esi + 0x7c], 0xd480b5d
mov dword [esi + 0x80], 0x31560f54
mov dword [esi + 0x84], 0x35623373
mov dword [esi + 0x88], 0x39653764
mov dword [esi + 0x8c], 0x3d6e3b68
mov dword [esi + 0x90], 0x216c3f7e
mov dword [esi + 0x94], 0x25742363
mov dword [esi + 0x98], 0x297f2772
mov dword [esi + 0x9c], 0x2d562b7e
mov word [esi + 0xa0], 0x2f2c
mov dword [esi + 0xa2], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0xa5
ja 0x1c71b7
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [esi + ecx]
mov edx, eax
xor edx, 0xba50049d
and eax, 0x3a50049d
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
add al, 0xef
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0xa6
jb 0x1c7180
mov eax, esi
mov edx, dword [ebp - 0xd8]
mov edi, edx
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0x90]
mov edi, dword [ebp - 0x94]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xb8]
mov dword [ecx], eax
mov eax, dword [ebp - 0x78]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x74]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x70]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], edx
jmp dword [0x1ecca0]