Function at 0x73efc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x141c
call fcn.00799260
push ebx
push esi
push edi
push 0x400
xor edi, edi
mov dword [ebp - 8], ecx
lea eax, [ebp - 0x41c]
mov esi, edx
push edi
push eax
mov dword [ebp - 0x10], esi
call fcn.0079a580
mov eax, dword [ebp - 8]
add esp, 0xc
mov dword [ebp - 0xc], edi
mov ebx, dword [eax + 0x34]
mov edx, dword [eax + 0xc]
mov ecx, dword [ebx]
not ecx
test edx, edx
jle 0x73f08f
xor esi, esi
cmp dword [eax + 8], esi
jle 0x73f074
nop
mov eax, dword [ebx + esi*4]
cmp eax, ecx
je 0x73f068
mov ecx, eax
mov edx, 0x1e35a7bd
mul edx
shrd eax, edx, 0x16
and eax, 0x3ff
cmp byte [ebp + eax - 0x41c], 0
je 0x73f04c
cmp dword [ebp + eax*4 - 0x141c], ecx
je 0x73f068
inc eax
and eax, 0x3ff
cmp byte [ebp + eax - 0x41c], 0
jne 0x73f033
inc edi
mov dword [ebp + eax*4 - 0x141c], ecx
mov byte [ebp + eax - 0x41c], 1
cmp edi, 0x100
jg 0x73f107
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 8]
jl 0x73f010
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x38]
lea ebx, [ebx + eax*4]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, edx
mov eax, dword [ebp - 8]
jl 0x73f007
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x73f0ff
xor edi, edi
xor ecx, ecx
nop word [eax + eax]
cmp byte [ebp + ecx - 0x41c], 0
je 0x73f0b5
mov eax, dword [ebp + ecx*4 - 0x141c]
mov dword [ebx + edi*4], eax
inc edi
cmp byte [ebp + ecx - 0x41b], 0
je 0x73f0ca
mov eax, dword [ebp + ecx*4 - 0x1418]
mov dword [ebx + edi*4], eax
inc edi
cmp byte [ebp + ecx - 0x41a], 0
je 0x73f0df
mov eax, dword [ebp + ecx*4 - 0x1414]
mov dword [ebx + edi*4], eax
inc edi
cmp byte [ebp + ecx - 0x419], 0
je 0x73f0f4
mov eax, dword [ebp + ecx*4 - 0x1410]
mov dword [ebx + edi*4], eax
inc edi
add ecx, 4
cmp ecx, 0x400
jl 0x73f0a0
cmp edi, 0x100
jle 0x73f110
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
push 0x73efa0
push 4
push edi
push ebx
mov dword [eax], edi
call fcn.007bd830
add esp, 0x10
test esi, esi
jne 0x73f317
xor cl, cl
xor eax, eax
mov byte [ebp - 1], cl
mov dword [ebp - 8], eax
test edi, edi
jle 0x73f1f2
mov ecx, dword [ebx + eax*4]
mov edx, ecx
and edx, 0xff00
mov dword [ebp - 0xc], ecx
mov eax, esi
and ecx, 0xffff00ff
and eax, 0xff00ff00
sub edx, eax
mov eax, esi
and eax, 0xff00ff
sub edx, 0xff01
sub ecx, eax
and esi, 0xff00ff00
mov eax, dword [ebp - 0xc]
add ecx, 0xff00
and eax, 0xff00ff00
xor edx, ecx
sub eax, esi
and edx, 0xff00ff
add eax, 0xff00ff
xor edx, eax
mov ecx, edx
mov eax, edx
shr ecx, 0x10
shr eax, 8
mov dword [ebp - 0x10], eax
test cl, cl
je 0x73f1b6
cmp cl, 0x80
mov cl, byte [ebp - 1]
sbb al, al
add al, 2
or cl, al
mov eax, dword [ebp - 0x10]
mov byte [ebp - 1], cl
jmp 0x73f1b9
mov cl, byte [ebp - 1]
test al, al
je 0x73f1ce
cmp al, 0x80
setae al
lea eax, [eax*8 + 8]
or cl, al
mov byte [ebp - 1], cl
test dl, dl
je 0x73f1e0
cmp dl, 0x80
sbb al, al
and al, 0xc0
sub al, 0x80
or cl, al
mov byte [ebp - 1], cl
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], eax
cmp eax, edi
jl 0x73f140
movzx ecx, cl
lea eax, [ecx + ecx]
test ecx, eax
je 0x73f317
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x10], ecx
test edi, edi
jle 0x73f317
nop
or esi, 0xffffffff
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], esi
mov eax, ecx
mov esi, edx
mov dword [ebp - 8], eax
and esi, 0xff00ff00
and edx, 0xff00ff
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], edx
mov ecx, dword [ebx + eax*4]
mov ebx, ecx
and ebx, 0xffff00ff
mov eax, ecx
and eax, 0xff00
sub ebx, edx
sub eax, esi
and ecx, 0xff00ff00
sub eax, 0xff01
sub ecx, esi
add ebx, 0xff00
add ecx, 0xff00ff
xor ebx, eax
and ebx, 0xff00ff
xor ebx, ecx
mov eax, ebx
movzx esi, bl
shr eax, 8
movzx ecx, al
mov eax, ebx
shr eax, 0x10
movzx edx, al
mov eax, 0x100
sub eax, edx
shr ebx, 0x18
cmp edx, 0x80
cmova edx, eax
mov eax, 0x100
sub eax, ecx
cmp ecx, 0x80
cmova ecx, eax
mov eax, 0x100
sub eax, esi
add edx, ecx
cmp esi, 0x80
cmova esi, eax
mov eax, 0x100
sub eax, ebx
add edx, esi
mov esi, dword [ebp - 0x1c]
cmp ebx, 0x80
cmova ebx, eax
mov eax, dword [ebp - 8]
lea ecx, [edx + edx*8]
mov edx, dword [ebp - 0x14]
add ecx, ebx
mov ebx, dword [ebp + 8]
cmp edx, ecx
cmovbe eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
inc eax
cmp edx, ecx
mov dword [ebp - 8], eax
cmovbe ecx, edx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
cmp eax, edi
jl 0x73f232
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov eax, dword [ebx + ecx*4]
mov edx, dword [ebx + esi*4]
mov dword [ebx + esi*4], eax
mov dword [ebx + ecx*4], edx
inc ecx
mov dword [ebp - 0x10], ecx
cmp ecx, edi
jl 0x73f210
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret