Function at 0x7b8df0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov esi, dword [esp + 0x70]
mov dword [esp], esi
call fcn.007b7ca0
mov ebp, eax
test ebp, ebp
jne 0x7b923a
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.007b4f60
mov ebp, eax
test ebp, ebp
jne 0x7b923a
mov edi, dword [esp + 0x64]
imul eax, esi, 0x64
mov ecx, dword [eax + 0x818d34]
mov edx, edi
shr edx, 3
and edi, 7
mov dword [esp + 0x34], edi
setne al
movzx edi, al
lea ebx, [ecx + ecx]
lea eax, [edi + edx - 2]
sub eax, ebx
mov ebp, 0x20012
jbe 0x7b923a
mov dword [esp + 0x38], ecx
cmp eax, dword [esp + 0x58]
jb 0x7b923a
add edi, edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], edi
mov dword [esp], edi
call fcn.00492770
mov ebp, eax
mov dword [esp], edi
call fcn.00492770
mov edi, eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00492770
test ebp, ebp
je 0x7b8ecf
test edi, edi
je 0x7b8ecf
test eax, eax
je 0x7b8ecf
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x3c], ecx
test eax, eax
je 0x7b8efe
mov ecx, dword [esp + 0x60]
lea edx, [esp + 0x3c]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], esi
jmp 0x7b8f19
mov esi, eax
test ebp, ebp
je 0x7b8edd
mov dword [esp], ebp
call fcn.004936c0
test edi, edi
je 0x7b8ee9
mov dword [esp], edi
call fcn.004936c0
mov ebp, 0xc
test esi, esi
je 0x7b923a
mov dword [esp], esi
jmp 0x7b9235
lea eax, [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 4], ebp
mov dword [esp], esi
mov dword [esp + 8], 0
call fcn.007b4040
mov edi, ebp
mov ebp, eax
test ebp, ebp
mov ecx, dword [esp + 0x38]
jne 0x7b921a
mov dword [esp + 0x3c], ecx
mov ebp, 0xfffffffe
mov eax, dword [esp + 0x58]
sub ebp, eax
add ebp, dword [esp + 0x30]
sub ebp, ebx
lea eax, [edi + ecx]
mov dword [esp + 8], ebp
mov dword [esp], eax
mov dword [esp + 4], 0
mov ebx, ecx
call fcn.007c51a0
mov eax, dword [esp + 0x3c]
lea ecx, [eax + ebp]
lea eax, [eax + ebp + 1]
mov dword [esp + 0x3c], eax
mov byte [edi + ecx], 1
mov eax, dword [esp + 0x3c]
add eax, edi
mov ebp, dword [esp + 0x58]
mov dword [esp + 8], ebp
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.007c51d0
add dword [esp + 0x3c], ebp
imul eax, dword [esp + 0x6c], 0x2c
mov ecx, dword [esp + 0x68]
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
call dword [eax + 0x81a4c4]
mov ecx, ebx
mov ebp, 0x20007
cmp eax, ecx
jne 0x7b921a
mov ebx, dword [esp + 0x30]
sub ebx, ecx
dec ebx
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 0x10], ebx
call fcn.007bb100
mov ebp, eax
test ebp, ebp
jne 0x7b921a
test ebx, ebx
mov dword [esp + 0x20], ebx
mov ebp, edi
je 0x7b90ef
cmp dword [esp + 0x34], 0
setne al
movzx eax, al
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax - 1]
sub eax, dword [esp + 0x38]
xor edx, edx
cmp eax, 0x20
jb 0x7b90c0
mov ecx, ebp
mov edi, eax
and edi, 0xffffffe0
je 0x7b90be
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x34], 0
setne bl
movzx ebx, bl
mov ebp, dword [esp + 0x24]
lea ebx, [ebp + ebx - 2]
sub ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
lea ebp, [edi + ebx]
cmp ecx, ebp
mov ebp, ecx
ja 0x7b905c
add ebx, ebp
cmp dword [esp + 0x28], ebx
jbe 0x7b90c0
cmp dword [esp + 0x34], 0
setne byte [esp + 0x17]
mov ecx, dword [esp + 0x28]
lea edx, [ecx + 0x10]
lea ebx, [ebp + 0x10]
mov dword [esp + 0x18], ebp
movzx ebp, byte [esp + 0x17]
mov ecx, dword [esp + 0x24]
lea ebp, [ecx + ebp - 1]
sub ebp, dword [esp + 0x38]
and ebp, 0xffffffe0
mov ecx, dword [esp + 0x1c]
movups xmm0, xmmword [edx - 0x10]
movups xmm1, xmmword [edx]
movups xmm2, xmmword [ebx - 0x10]
movups xmm3, xmmword [ebx]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [ebx - 0x10], xmm2
movups xmmword [ebx], xmm3
add edx, 0x20
add ebx, 0x20
add ebp, 0xffffffe0
jne 0x7b908c
cmp eax, ecx
mov edx, ecx
mov ebp, dword [esp + 0x18]
je 0x7b90ef
jmp 0x7b90c0
mov ebp, ecx
cmp dword [esp + 0x34], 0
setne al
movzx eax, al
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax - 1]
mov ecx, ebp
add ecx, edx
sub eax, edx
mov edi, dword [esp + 0x28]
lea edx, [edi + edx]
mov edi, dword [esp + 0x38]
sub eax, edi
mov bl, byte [edx]
xor byte [ecx], bl
inc edx
inc ecx
dec eax
jne 0x7b90e6
mov edi, dword [esp + 0x38]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp + 4], ebp
mov dword [esp], esi
call fcn.007bb100
mov ecx, edi
mov edi, ebp
mov ebp, eax
test ebp, ebp
jne 0x7b921a
mov esi, ebx
mov ebx, edi
test ecx, ecx
mov ebp, ecx
je 0x7b91b1
xor ecx, ecx
cmp ebp, 0x20
jb 0x7b9198
mov eax, ebp
and eax, 0xffffffe0
je 0x7b9198
mov edx, dword [esp + 0x28]
lea edx, [edx + ebp - 1]
cmp dword [esp + 0x2c], edx
ja 0x7b9159
mov edx, dword [esp + 0x2c]
lea edx, [edx + ebp - 1]
cmp dword [esp + 0x28], edx
jbe 0x7b9198
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + 0x10]
mov edx, dword [esp + 0x2c]
lea edx, [edx + 0x10]
mov edi, ebp
and edi, 0xffffffe0
movups xmm0, xmmword [ecx - 0x10]
movups xmm1, xmmword [ecx]
movups xmm2, xmmword [edx - 0x10]
movups xmm3, xmmword [edx]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [edx - 0x10], xmm2
movups xmmword [edx], xmm3
add ecx, 0x20
add edx, 0x20
add edi, 0xffffffe0
jne 0x7b916c
cmp ebp, eax
mov ecx, eax
je 0x7b91b1
mov eax, dword [esp + 0x28]
add eax, ecx
mov edx, dword [esp + 0x2c]
add edx, ecx
mov edi, ebp
sub edi, ecx
mov cl, byte [eax]
xor byte [edx], cl
inc eax
inc edx
dec edi
jne 0x7b91a8
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x78]
cmp dword [ecx], eax
jae 0x7b91c8
mov dword [ecx], eax
mov ebp, 0x20004
mov edi, ebx
jmp 0x7b921a
mov edi, dword [esp + 0x74]
mov dword [esp + 0x3c], 1
mov byte [edi], 0
lea eax, [edi + 1]
mov dword [esp + 8], ebp
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.007c51d0
add ebp, dword [esp + 0x3c]
mov dword [esp + 0x3c], ebp
add ebp, edi
mov dword [esp + 8], esi
mov edi, ebx
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.007c51d0
add esi, dword [esp + 0x3c]
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x78]
mov dword [eax], esi
xor ebp, ebp
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp], edi
call fcn.004936c0
mov eax, ebp
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret