Function at 0x7a26a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x28
mov eax, dword [0xbcbae0]
xor eax, esp
mov dword [esp + 0x24], eax
mov dword [esp + 4], ecx
call fcn.007a3a20
mov ebx, eax
test eax, eax
jne 0x7a30c0
xor esi, esi
mov dword [esp + 8], 0
mov dword [esp], 0
mov ebx, dword [esp + 4]
cmp esi, dword [ebx + 0x14]
jge 0x7a2755
mov eax, dword [ebx + 0x10]
mov ebp, esi
shl ebp, 4
mov edi, dword [eax + ebp + 4]
mov ecx, edi
call fcn.00788610
test eax, eax
jne 0x7a26fa
xor ebx, ebx
jmp 0x7a274b
mov ecx, edi
call fcn.0077c370
mov ecx, edi
call fcn.00774d70
mov edx, dword [ebx + 0x10]
mov ecx, eax
cmp byte [edx + ebp + 8], 1
je 0x7a2736
mov ebx, ecx
call fcn.0077c650
mov ecx, 0xb
bt ecx, eax
jae 0x7a2734
mov ecx, ebx
call fcn.0079f8a0
cmp eax, 1
adc dword [esp + 8], 0
mov ecx, ebx
call fcn.0079a0d0
mov ecx, edi
mov ebx, eax
call fcn.0077ce10
mov dword [esp], 1
inc esi
test ebx, ebx
je 0x7a26d6
jmp 0x7a30c0
cmp dword [esp], 0
je 0x7a2785
mov eax, dword [esp + 4]
mov eax, dword [eax + 0xe0]
test eax, eax
je 0x7a2785
mov ecx, dword [esp + 4]
push dword [ecx + 0xdc]
call eax
add esp, 4
mov ebx, 0x213
test eax, eax
jne 0x7a30c0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 4]
call fcn.0078d010
mov ecx, eax
mov edi, eax
call fcn.00777870
xor ebp, ebp
cmp dword [esp + 8], 2
jl 0x7a27aa
test eax, eax
jne 0x7a2813
mov edi, dword [esp + 4]
mov eax, dword [edi + 0x14]
cmp ebp, eax
jl 0x7a27e1
test eax, eax
jle 0x7a30b7
xor esi, esi
mov eax, dword [edi + 0x10]
mov ecx, esi
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
test ecx, ecx
je 0x7a2808
xor edx, edx
call fcn.0077cd40
test eax, eax
je 0x7a2808
mov ebx, eax
jmp 0x7a30c0
mov eax, dword [edi + 0x10]
mov ecx, ebp
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
test ecx, ecx
jne 0x7a27f5
xor ebx, ebx
jmp 0x7a27fe
xor edx, edx
call fcn.0077cda0
mov ebx, eax
inc ebp
test ebx, ebx
je 0x7a27aa
jmp 0x7a30c0
inc esi
cmp esi, dword [edi + 0x14]
jl 0x7a27bf
jmp 0x7a30b7
mov ebp, fcn.0079a660
mov ebx, fcn.0079a660
mov dword [esp + 0x10], eax
xor eax, eax
or ebp, 2
xor ebx, 2
movzx edx, byte [0xbad4db]
mov ecx, ebp
add ecx, ebx
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7a29e9
mov al, byte [0xbad4db]
mov esi, ebp
xor edx, edx
add esi, ebx
sete dl
mov ecx, edx
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dl, 1
or cl, 4
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbad4db], dl
jne 0x7a2852
mov ecx, fcn.0079a660
mov edx, fcn.0079a660
xor ebx, ebx
movzx eax, al
or ecx, 2
xor edx, 2
mov esi, ecx
add esi, edx
sete bl
mov esi, ebx
xor ebx, 1
lea ebx, [ebx + esi*2]
or bl, 4
xor bl, 7
movzx esi, bl
bt eax, esi
jae 0x7a28d2
mov esi, ecx
xor eax, eax
add esi, edx
movzx esi, byte [0xbad4db]
sete al
mov ebx, eax
xor ebx, 1
lea eax, [ebx + eax*2]
or al, 4
movzx eax, al
bt esi, eax
jae 0x7a28ab
jmp 0x7a29e9
xor eax, eax
add ecx, edx
movzx edx, byte [0xbad4db]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7a29ba
mov eax, fcn.0079a660
mov ecx, fcn.0079a660
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
xor eax, 0x7b5dbaa1
lea ecx, [eax + edx*2 + 0x81c]
mov eax, dword [0xbad4c0]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbad4c0], eax
not eax
imul edx, eax
mov eax, dword [0xbad4c4]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbad4c4], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbad4c8]
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbad4c8], edx
or eax, esi
not edx
mov ebx, dword [0xbad4cc]
imul edx, eax
lea esi, [edx*8]
xor ebx, edx
shr edx, 0x1c
mov dword [0xbad4cc], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbad4d0]
mov esi, ebx
shl esi, 4
xor edx, ebx
shr ebx, 0x1b
mov dword [0xbad4d0], edx
or ebx, esi
not edx
imul edx, ebx
xor dword [0xbad4d4], edx
mov dl, 1
shl dl, cl
or byte [0xbad4db], dl
mov eax, fcn.0079a660
mov ecx, fcn.0079a660
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
xor eax, 1
lea ecx, [eax + edx*2]
mov al, 0xfe
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbad4db], al
mov eax, dword [esp + 4]
mov ecx, dword [eax]
mov dword [esp + 0x20], 0
mov dword [esp + 8], ecx
push 0
push 0
push edi
push 0xbad4c0
push eax
call fcn.00782620
add esp, 0x14
test eax, eax
mov dword [esp], eax
jne 0x7a2a1f
mov ebx, 7
jmp 0x7a30c0
mov eax, dword [esp]
mov ebp, 0x81c4d0
mov ecx, 3
xor edi, edi
imul ebp, ebp
and ebp, 3
add dword [esp + 0x10], eax
mov eax, fcn.007b9e60
sub ecx, eax
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0x14]
test edi, edi
je 0x7a2b95
cmp edi, 0x64
ja 0x7a2c2c
cmp edi, 1
jne 0x7a2b95
mov ecx, ebx
xor eax, eax
xor ecx, fcn.007b9e60
movzx ecx, byte [0xbad513]
setne al
bt ecx, eax
jb 0x7a2b83
mov al, byte [0xbad513]
mov ecx, ebx
mov dl, 1
xor ecx, fcn.007b9e60
setne cl
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbad513], dl
jne 0x7a2a83
mov ecx, ebx
movzx eax, al
xor ecx, fcn.007b9e60
setne cl
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7a2ad8
mov ecx, ebx
xor eax, eax
xor ecx, fcn.007b9e60
movzx ecx, byte [0xbad513]
setne al
bt ecx, eax
jae 0x7a2aba
jmp 0x7a2b83
mov ecx, ebx
xor eax, eax
xor ecx, fcn.007b9e60
movzx ecx, byte [0xbad513]
setne al
bt ecx, eax
jb 0x7a2b6c
mov eax, ebx
xor ecx, ecx
xor eax, fcn.007b9e60
mov eax, dword [0xbad500]
sete cl
xor ecx, 0xbd941269
add ecx, 0x1020
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbad500], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbad504]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbad504], eax
or esi, edx
not eax
mov edx, dword [0xbad508]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbad508], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
shl al, cl
xor dword [0xbad50c], edx
or byte [0xbad513], al
mov eax, ebx
xor eax, fcn.007b9e60
mov al, 0xfe
setne cl
xor cl, 7
rol al, cl
and byte [0xbad513], al
push dword [esp]
push 0xbad500
push 0xd
call fcn.00777b70
add esp, 0xc
xor eax, eax
cmp ebp, 3
movzx edx, byte [0xbad533]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7a2e90
mov al, byte [0xbad533]
xor ecx, ecx
cmp ebp, 3
sete cl
mov edx, ecx
not edx
lea ecx, [ecx + edx*2]
mov dl, 1
and cl, 7
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbad533], dl
jne 0x7a2bbe
xor ecx, ecx
cmp ebp, 3
movzx eax, al
sete cl
mov edx, ecx
not edx
lea ecx, [ecx + edx*2]
and cl, 7
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7a2dd5
xor eax, eax
cmp ebp, 3
movzx edx, byte [0xbad533]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 7
movzx eax, al
bt edx, eax
jae 0x7a2c07
jmp 0x7a2e90
mov edx, fcn.00787f90
xor eax, eax
movzx esi, byte [0xbad4f3]
mov edi, dword [esp + 4]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jb 0x7a2dad
mov al, byte [0xbad4f3]
xor ecx, ecx
cmp edx, 3
mov ah, 1
sete cl
mov ebx, ecx
not ebx
lea ecx, [ecx + ebx*2 + 4]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbad4f3], ah
jne 0x7a2c65
mov ecx, fcn.00787f90
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete dl
mov ebx, edx
not ebx
lea edx, [edx + ebx*2 + 4]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7a2cdd
xor eax, eax
cmp ecx, 3
movzx esi, byte [0xbad4f3]
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jae 0x7a2cb7
jmp 0x7a2dad
xor eax, eax
cmp ecx, 3
movzx edx, byte [0xbad4f3]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7a2d82
mov ecx, fcn.00787f90
xor eax, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete al
mov ecx, eax
not ecx
and ecx, 0x463
lea ecx, [eax + ecx*2 + 0x4a99a9c]
mov eax, dword [0xbad4e0]
xor eax, ecx
mov dword [0xbad4e0], eax
not eax
mov edx, dword [0xbad4e4]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbad4e4], edx
or esi, eax
not edx
mov eax, dword [0xbad4e8]
imul edx, esi
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbad4e8], eax
or esi, edx
not eax
mov dl, 1
imul eax, esi
shl dl, cl
xor dword [0xbad4ec], eax
or byte [0xbad4f3], dl
mov eax, fcn.00787f90
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete cl
mov eax, ecx
not eax
lea ecx, [ecx + eax*2 + 4]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbad4f3], al
mov esi, dword [esp]
push esi
push 0xbad4e0
push 0xd
call fcn.00777b70
add esp, 0xc
mov ecx, dword [esp + 8]
mov edx, esi
push 0
call fcn.0079ca00
add esp, 4
jmp 0x7a2ef3
xor eax, eax
cmp ebp, 3
movzx edx, byte [0xbad533]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7a2e71
xor eax, eax
cmp ebp, 3
sete al
mov ecx, eax
not ecx
and ecx, 0x657
lea ecx, [eax + ecx*2 - 0x50b44e60]
mov eax, dword [0xbad520]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbad520], eax
not eax
imul edx, eax
mov eax, dword [0xbad524]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbad524], eax
or esi, edx
not eax
mov edx, dword [0xbad528]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbad528], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
shl al, cl
xor dword [0xbad52c], edx
or byte [0xbad533], al
xor eax, eax
cmp ebp, 3
sete al
mov ecx, eax
not ecx
lea ecx, [eax + ecx*2]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbad533], al
lea eax, [esp + 0x18]
push eax
push 4
call fcn.00777c70
add esp, 8
mov eax, dword [esp + 0x18]
movzx ecx, al
shr eax, 8
push ecx
push eax
push 0xbad520
push dword [esp + 0x1c]
push 0xd
call fcn.00777b20
add esp, 0x14
mov ecx, dword [esp + 8]
mov edx, dword [esp]
lea eax, [esp + 0x1c]
push eax
push 0
call fcn.0079c5e0
add esp, 8
mov ebx, eax
test eax, eax
jne 0x7a2ee7
mov eax, dword [esp + 0x1c]
inc edi
test eax, eax
jne 0x7a2a43
mov edi, dword [esp + 4]
test ebx, ebx
jne 0x7a3047
mov ecx, dword [esp + 8]
mov edx, dword [esp]
lea eax, [esp + 0x20]
push 0
push 0x4016
push eax
call fcn.007a3aa0
add esp, 0xc
mov ebx, eax
test eax, eax
jne 0x7a3047
mov ecx, dword [edi + 0x14]
mov eax, dword [esp + 0x20]
test ecx, ecx
mov dword [esp + 0xc], eax
jle 0x7a2fc2
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x10], 0
mov eax, dword [esp + 4]
mov esi, ecx
mov ecx, edi
shl ecx, 4
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + ecx + 4]
mov ecx, ebx
call fcn.00788610
test eax, eax
jne 0x7a2f58
mov ecx, esi
jmp 0x7a2fb9
mov ecx, ebx
call fcn.007a3b00
test eax, eax
jne 0x7a2f67
mov ecx, esi
jmp 0x7a2fb9
mov ecx, eax
mov ebx, eax
call fcn.00777870
mov ecx, dword [esp + 0xc]
inc eax
mov esi, ebp
mov dword [esp + 0x14], ebx
mov edx, ebx
push ebp
mov ebp, dword [esp + 0x14]
push ebp
push eax
call fcn.0077cc70
add esp, 0xc
test eax, eax
jne 0x7a30d5
mov ecx, dword [esp + 0x14]
call fcn.00777870
mov ecx, eax
sar ecx, 0x1f
add ebp, eax
adc esi, ecx
mov ecx, dword [esp + 4]
add ebp, 1
adc esi, 0
mov dword [esp + 0x10], ebp
mov ebp, esi
mov ecx, dword [ecx + 0x14]
inc edi
cmp edi, ecx
jl 0x7a2f37
mov edi, dword [esp + 0xc]
mov ecx, edi
call fcn.00796b70
test eax, 0x400
je 0x7a2ff3
mov edi, dword [esp + 4]
xor esi, esi
cmp esi, dword [edi + 0x14]
jge 0x7a3053
mov eax, dword [edi + 0x10]
mov ecx, esi
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
test ecx, ecx
jne 0x7a302f
xor ebx, ebx
jmp 0x7a3039
mov ecx, edi
mov edx, 2
call fcn.00798270
test eax, eax
je 0x7a2fd4
mov ebx, eax
mov ecx, edi
call fcn.007a3870
mov esi, dword [esp]
mov ecx, dword [esp + 8]
mov edx, esi
push 0
call fcn.0079ca00
add esp, 4
mov ecx, dword [esp + 4]
mov edx, esi
call fcn.00774f10
jmp 0x7a30c0
mov edx, dword [esp]
call fcn.0077cda0
mov ebx, eax
inc esi
test ebx, ebx
je 0x7a2fda
mov ecx, dword [esp + 0xc]
call fcn.007a3870
mov edx, dword [esp]
mov ecx, edi
call fcn.00774f10
jmp 0x7a30c0
mov ecx, dword [esp + 0xc]
call fcn.007a3870
mov esi, dword [esp]
mov ecx, dword [esp + 8]
mov edx, esi
push 1
call fcn.0079ca00
add esp, 4
mov ecx, edi
mov edx, esi
mov ebx, eax
call fcn.00774f10
test ebx, ebx
jne 0x7a30c0
call fcn.00791930
mov edi, dword [esp + 4]
mov eax, dword [edi + 0x14]
test eax, eax
jle 0x7a30b2
xor esi, esi
mov ecx, dword [edi + 0x10]
mov edx, esi
shl edx, 4
mov ecx, dword [ecx + edx + 4]
test ecx, ecx
je 0x7a30ad
mov edx, 1
call fcn.0077cd40
mov eax, dword [edi + 0x14]
inc esi
cmp esi, eax
jl 0x7a3090
call fcn.00791940
mov ecx, edi
call fcn.007a3a90
xor ebx, ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.00980459
mov eax, ebx
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xc]
mov ebx, eax
jmp 0x7a3007