Function at 0x11a97a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe0
mov eax, dword [0x11cd3c0]
mov dword [esp + 0x10], 0x3373316d
mov dword [esp + 0x14], 0x2fbe2dbc
mov dword [esp + 0x18], 0x2b8b2994
mov dword [esp + 0x1c], 0x278725a8
mov dword [esp + 0x20], 0x2322217d
mov word [esp + 0x24], 0
mov byte [esp + 0x26], 0
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x60]
cmp ecx, 0x16
ja 0x11a9850
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
movzx edx, byte [esp + edx + 0x10]
mov esi, ecx
xor esi, 0xbfd2a58c
and ecx, 0x3fd2a58c
lea ecx, [esi + ecx*2]
lea esi, [ecx + edx]
not edx
or ecx, edx
sub edx, ecx
lea ecx, [esi + edx*2]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xb4]
add cl, 0x44
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
cmp ecx, 0x17
jb 0x11a9800
lea edi, [esp + 0x88]
lea ecx, [esp + 0x10]
push edi
push 0
push 0
push 9
push ecx
push 0
call eax
mov ebx, dword [esp + 0x88]
test ebx, ebx
jns 0x11a9879
mov eax, 0xffffffff
jmp 0x11a987c
lea eax, [ebx + ebx]
push eax
call fcn.0118c9f0
add esp, 4
mov dword [esp + 0x58], eax
mov eax, dword [0x11cd3c0]
mov dword [esp + 0x10], 0x591d5b3f
mov dword [esp + 0x14], 0x5dee5fe8
mov dword [esp + 0x18], 0x51f55318
mov dword [esp + 0x1c], 0x55f157e4
mov dword [esp + 0x20], 0xa9aaab2f
mov word [esp + 0x24], 0
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x60]
cmp ecx, 0x15
ja 0x11a9929
nop
nop
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
movzx ecx, byte [esp + ecx + 0x10]
mov ebp, edx
not ebp
or ebp, 0xb29f9ef
add ebp, edx
xor edx, 0xb29f9ef
lea esi, [edx + ebp*2]
lea edx, [edx + ebp*2]
add edx, 2
add esi, ecx
add esi, 2
and edx, ecx
add edx, edx
sub esi, edx
mov dword [esp + 0xb4], esi
mov ecx, dword [esp + 0xb4]
add cl, 0x55
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
cmp ecx, 0x16
jb 0x11a98d0
push edi
push ebx
push dword [esp + 0x60]
push 9
lea ecx, [esp + 0x20]
push ecx
push 0
call eax
mov dword [esp + 0x10], 0x996d9b50
mov dword [esp + 0x14], 0xa54ba765
mov dword [esp + 0x18], 0xa15ca355
mov dword [esp + 0x1c], 0xadaeaf4c
lea edx, [esp + 0x20]
mov byte [esp + 0x20], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x60]
cmp eax, 0x10
ja 0x11a99cd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
movzx ecx, byte [esp + ecx + 0x10]
lea esi, [eax + eax]
and esi, 0x9dbd38b6
sub eax, esi
add eax, 0xcede9c5b
mov edi, eax
and edi, esi
xor eax, esi
lea eax, [eax + edi*2]
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0x39
mov ecx, dword [esp + 0x60]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x60]
mov eax, dword [esp + 0x60]
cmp eax, 0x11
jb 0x11a9980
lea eax, [esp + 0xd0]
lea esi, [esp + 0x10]
mov edi, eax
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0xe0]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x10], 0x43ab4184
mov dword [esp + 0x14], 0x47a545d7
mov dword [esp + 0x18], 0x4bd849a7
mov dword [esp + 0x1c], 0x4f8d4da8
mov dword [esp + 0x20], 0x739c7191
mov dword [esp + 0x24], 0x77e47595
mov dword [esp + 0x28], 0x7b7a79e1
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1b
ja 0x11a9a8d
nop
nop
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
movzx edx, byte [esp + edx + 0x10]
mov esi, ecx
not esi
or esi, 0x4ae76c10
add esi, ecx
xor ecx, 0xcae76c10
lea ecx, [ecx + esi*2]
add ecx, 2
xor ecx, edx
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xb4]
add cl, 0xb0
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1c
jb 0x11a9a40
lea edx, [esp + 0xb4]
lea esi, [esp + 0x10]
mov edi, edx
mov ecx, 7
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0xd0]
lea esi, [esp + 0x2c]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x10], 0xc16dc708
mov dword [esp + 0x14], 0xcd6fc35d
mov dword [esp + 0x18], 0xc95ccf5d
mov dword [esp + 0x1c], 0xb57acb64
mov dword [esp + 0x20], 0xb174b708
lea ebx, [esp + 0x24]
mov dword [esp + 0x24], 0xb3b0
mov byte [esp + 0x28], 0
mov dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x18
ja 0x11a9b6b
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x8c]
movzx esi, byte [esp + esi + 0x10]
lea edi, [ecx + esi]
add edi, 0x1001de31
add ecx, 0x1001de31
and ecx, esi
mov esi, edi
not esi
and esi, ecx
add esi, ecx
not ecx
and ecx, edi
sub ecx, esi
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x60]
add cl, 0xb
mov esi, dword [esp + 0x8c]
mov byte [esp + esi + 0x10], cl
inc dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x19
jb 0x11a9b10
lea esi, [esp + 0x60]
lea ebp, [esp + 0x10]
mov edi, esi
mov ecx, 5
xchg esi, ebp
rep movsd dword es:[edi], dword [esi]
xchg esi, ebp
lea edi, [esp + 0x74]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], esi
mov eax, dword [esp + 0x58]
add eax, 2
mov dword [esp + 0x9c], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x80], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x11c98ec]
jmp dword [0x11c99b0]
jmp dword [0x11c9994]
push 0xe050b307
push dword [0x11cd3b8]
call fcn.011c0e30
add esp, 8
push dword [esp + 4]
call eax
jmp dword [0x11c996c]
push edi
call fcn.0118ca00
add esp, 4
jmp dword [0x11c9958]
mov dword [esp + 0xb0], ecx
mov ebx, dword [esp + ecx + 0x8c]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + esi + 2], 0
lea esi, [esi + 2]
jne 0x11a9e10
mov edx, esi
sar edx, 1
mov eax, dword [esp + 0x88]
lea ecx, [edx + eax]
mov dword [esp + 0x78], edx
add edx, eax
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x11a9e42
mov eax, 0xffffffff
push eax
call fcn.0118c9f0
add esp, 4
mov ebp, eax
mov eax, dword [esp + 0x58]
movzx ecx, word [eax]
mov eax, ebp
test cx, cx
je 0x11a9e81
mov edx, dword [esp + 0x9c]
mov eax, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x11a9e70
mov word [eax], 0x5c
mov dword [esp + 0x10], 0x11e21ff0
mov dword [esp + 0x14], 0x15f71381
mov dword [esp + 0x18], 0x98a17f7
mov dword [esp + 0x1c], 0xdff0b28
mov dword [esp + 0x20], 0x1ed0f98
mov dword [esp + 0x24], 0x5e50394
mov dword [esp + 0x28], 0x704
add eax, 2
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1b
ja 0x11a9f0b
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x10]
mov edi, ecx
xor edi, 0xf4e99d45
and ecx, 0xf4e99d45
lea ecx, [edi + ecx*2]
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0xa7
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x1c
jb 0x11a9ed0
movzx ecx, word [ebx]
test cx, cx
je 0x11a9f31
lea edx, [ebx + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x11a9f20
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
mov dword [esp + 0x50], ebx
je 0x11a9f61
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x11a9f50
mov word [eax], 0
lea eax, [esp + 0x7c]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xbc], ebp
push ebp
call fcn.011c1960
add esp, 0x14
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x11c990c]
mov edi, dword [esp + 0xac]
jmp dword [0x11c99bc]
lea eax, [esp + 0x84]
push 0
push eax
push dword [esp + 0x84]
call fcn.011c1cc0
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x11c9914]
mov edi, dword [esp + 0x84]
lea eax, [edi + 1]
push eax
call fcn.0118c9f0
add esp, 4
mov ebp, eax
push 0
push edi
push eax
push dword [esp + 0x88]
call fcn.011c1dc0
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x11c991c]
jmp dword [0x11c9928]
mov eax, dword [esp + 0x84]
mov byte [ebp + eax], 0
push ebp
call fcn.01183b70
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x84]
mov byte [ebp + eax], 0
push ebp
call fcn.01183b70
add esp, 4
jmp dword [0x11c992c]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x11c9934]
mov dword [esp + 0xa8], eax
push eax
call fcn.01184660
add esp, 4
mov dword [esp + 0x10], 0xf4effafd
mov dword [esp + 0x14], 0xe1e2e8e2
mov dword [esp + 0x18], 0xfcf8f03a
mov dword [esp + 0x1c], 0xe9eae0ea
mov dword [esp + 0x20], 0xcfffbfb
mov word [esp + 0x24], 0x1807
mov byte [esp + 0x26], 0xa2
mov dword [esp + 0x27], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1a
ja 0x11aa1aa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x10]
mov edi, ecx
xor edi, 0x68f65ed
mov ebx, ecx
xor ebx, 0x79709a12
or ecx, 0x68f65ed
and ecx, ebx
lea edi, [edi + ecx*2]
mov ecx, edi
and ecx, edx
xor edi, edx
lea edx, [edi + ecx*2]
mov edi, edx
not edi
and edi, ecx
add edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x5f
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x1b
jb 0x11aa150
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.01184a20
add esp, 8
mov ecx, 0xffffffff
mov edx, 0xfffffffd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edx, 3
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x11aa1d0
shr edx, 2
mov edi, ecx
not edi
and edi, 1
mov ebx, ecx
mov dword [esp + 0x48], ecx
and ecx, 0xfffffffe
sub ecx, edi
movzx ecx, byte [eax + ecx]
cmp ecx, 0x3d
je 0x11aa200
cmp ecx, 0x2e
jne 0x11aa201
dec edx
mov ecx, dword [esp + 0x48]
movzx ecx, byte [eax + ecx - 2]
cmp ecx, 0x3d
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], ebp
je 0x11aa222
cmp ecx, 0x2e
jne 0x11aa223
dec edx
mov dword [esp + 0xa4], edx
lea eax, [edx + 1]
push eax
call fcn.0118c9f0
add esp, 4
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x48], 0
je 0x11aa33a
xor edx, edx
mov ebp, 2
jmp 0x11aa264
mov edi, ebx
lea eax, [ebp + 4]
add ebp, 2
mov edx, edi
cmp ebp, ecx
mov ebp, eax
jae 0x11aa33a
mov dword [esp + 0x44], edx
mov edi, dword [esp + 0xa0]
movzx eax, byte [edi + ebp - 2]
push eax
call fcn.0119e800
add esp, 4
mov ebx, eax
movzx eax, byte [edi + ebp - 1]
push eax
call fcn.0119e800
mov edx, dword [esp + 0x48]
add esp, 4
shl bl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, bl
lea ebx, [edx + 1]
mov ecx, dword [esp + 0x5c]
mov byte [ecx + edx], ah
mov ecx, dword [esp + 0x48]
cmp ebp, ecx
jae 0x11aa250
mov byte [esp + 0x4f], al
movzx eax, byte [edi + ebp]
push eax
call fcn.0119e800
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp al, 0x40
mov edi, ebx
je 0x11aa252
movzx ecx, byte [esp + 0x4f]
shl cl, 4
mov ebx, eax
shr al, 2
and al, 0xf
or al, cl
mov edx, dword [esp + 0x44]
lea edi, [edx + 2]
mov ecx, dword [esp + 0x5c]
mov byte [ecx + edx + 1], al
mov ecx, dword [esp + 0x48]
lea eax, [ebp + 1]
cmp eax, ecx
jae 0x11aa252
mov eax, dword [esp + 0xa0]
movzx eax, byte [eax + ebp + 1]
push eax
call fcn.0119e800
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp al, 0x40
je 0x11aa252
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x44]
mov byte [ecx + edx + 2], al
mov ecx, dword [esp + 0x48]
add edx, 3
mov edi, edx
jmp 0x11aa252
mov ecx, dword [esp + 0xa4]
mov eax, ecx
xor eax, 5
and ecx, 0xfffffffa
add ecx, ecx
sub ecx, eax
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x5c]
add eax, 5
mov dword [esp + 0xc], eax
mov dword [esp], 0
mov dword [esp + 4], 0
push 0x6c625980
push dword [0x11cd3d0]
call fcn.011c0e30
add esp, 8
mov ecx, esp
lea edx, [esp + 8]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x11c993c]
xor ebx, ebx
mov ebp, dword [esp + 0x98]
jmp dword [0x11c996c]
lea eax, [esi + 0x10]
cmp dword [esp + 0x78], 0xfffffff8
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x98]
jge 0x11aa3c9
mov eax, 0xffffffff
push eax
call fcn.0118c9f0
add esp, 4
mov ebx, eax
mov dword [esp + 0x10], 0xd1aacffd
mov dword [esp + 0x14], 0xd5fcd3a0
mov dword [esp + 0x18], 0xd9aed7a0
mov dword [esp + 0x1c], 0xdddadbac
mov word [esp + 0x20], 0
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x54]
cmp eax, 0x11
ja 0x11aa45f
nop
nop
nop
nop
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
xor edx, 0xf9e8e0cd
and eax, 0xf9e8e0cd
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
not ecx
and ecx, eax
add ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
dec al
mov ecx, dword [esp + 0x54]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x54]
mov eax, dword [esp + 0x54]
cmp eax, 0x12
jb 0x11aa410
movzx ecx, word [edi]
mov eax, ebx
test cx, cx
je 0x11aa481
lea edx, [edi + 2]
mov eax, ebx
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x11aa470
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x11aa4b1
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x11aa4a0
mov word [eax], 0
mov ecx, dword [esp + 0xf4]
push dword [esp]
push dword [esp + 8]
push ebx
call fcn.0118d4d0
mov edi, ebx
mov ebx, eax
jmp dword [0x11c9944]
jmp dword [0x11c994c]
jmp dword [0x11c9904]
push dword [esp + 0x58]
call fcn.0118ca00
add esp, 4
mov eax, dword [esp + 0x80]
and al, 1
add esp, 0xe0
pop esi
pop edi
pop ebx
pop ebp
ret
stosd dword es:[edi], eax
sbb al, byte [ecx]
invalid