Function at 0x736be0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x48
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x7373e0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.00737380
mov edx, dword [0xb4292c]
mov ecx, dword [0xb42918]
mov ebx, 0x2ac2
sub ebx, eax
sub ecx, ebx
add ecx, edx
call dword [0xb0836c]
call ecx
mov dword [ebp - 0x38], 0
mov ecx, eax
xor ecx, 0x2a78b209
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ecx
mov byte [ebp - 0x48], 0
movzx ecx, byte [0xb424bb]
mov dword [ebp - 0x24], eax
mov edx, eax
xor dl, 0xa0
cmp cl, dl
je 0x736d51
mov ah, al
mov ecx, eax
xor cl, 0x4a
xor ah, 0xa2
nop dword [eax + eax]
mov al, cl
lock cmpxchg byte [0xb424bb], ah
je 0x736c85
cmp al, dl
jne 0x736c70
jmp 0x736d51
mov ecx, dword [ebp - 0x24]
xor ecx, 0x2a78b23d
cmp ecx, 2
mov eax, 1
cmovge eax, ecx
xor ecx, ecx
cmp eax, 8
jb 0x736d33
xor ecx, ecx
cmp eax, 0x20
jb 0x736cf9
mov ecx, eax
and ecx, 0x7fffffe0
xor esi, esi
nop word cs:[eax + eax]
movaps xmm0, xmmword [esi + 0xac0ae0]
movaps xmm1, xmmword [esi + 0xac0af0]
xorps xmm0, xmmword [esi + 0xb42480]
xorps xmm1, xmmword [esi + 0xb42490]
movaps xmmword [esi + 0xb42480], xmm0
movaps xmmword [esi + 0xb42490], xmm1
add esi, 0x20
cmp ecx, esi
jne 0x736cc0
cmp eax, ecx
je 0x736d44
test al, 0x18
je 0x736d33
mov esi, ecx
mov ecx, eax
and ecx, 0x7ffffff8
nop word cs:[eax + eax]
movsd xmm0, qword [esi + 0xb42480]
movsd xmm1, qword [esi + 0xac0ae0]
xorps xmm1, xmm0
movlps qword [esi + 0xb42480], xmm1
add esi, 8
cmp ecx, esi
jne 0x736d10
jmp 0x736d40
mov dh, byte [ecx + 0xac0ae0]
xor byte [ecx + 0xb42480], dh
inc ecx
cmp eax, ecx
jne 0x736d33
xchg byte [0xb424bb], dl
mov dword [ebp - 0x10], 0xffffffff
mov edi, dword [ebp - 0x24]
xor edi, 0x2a78b23c
mov eax, dword [0xb42928]
mov esi, dword [0xb42910]
mov dword [ebp - 0x2c], ebx
sub esi, ebx
add esi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xb0836c]
movzx eax, byte [ebp - 0x28]
mov byte [esp + 4], al
mov dword [esp], edi
mov dword [esp + 8], 0xb42480
lea edi, [ebp - 0x48]
mov ecx, edi
call esi
sub esp, 0xc
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x34], eax
jbe 0x736da3
mov edi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x24]
xor eax, 0x2a68b206
mov dword [ebp - 0x10], 1
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.007372c0
sub esp, 8
test eax, eax
setne cl
or cl, byte [0xb533c8]
or cl, byte [0xb53280]
test cl, 1
mov byte [ebp - 0x1d], cl
je 0x736de9
mov dword [esp], eax
call sub.KERNEL32.dll_CloseHandle
sub esp, 4
movzx ecx, byte [ebp - 0x1d]
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x30]
jbe 0x736e7a
mov esi, dword [ebp - 0x48]
lea edi, [eax + 1]
mov ebx, dword [ebp - 0x24]
mov ecx, ebx
xor ecx, 0x2a78bdf9
cmp edi, ecx
jbe 0x736e42
mov ecx, dword [esi - 4]
mov edx, ebx
xor edx, 0xd5874dfa
add edx, esi
sub edx, ecx
mov esi, ebx
xor esi, 0x2a78b226
cmp edx, esi
jae 0x736e90
mov edx, ebx
xor edx, 0x2a78b222
mov esi, ebx
xor esi, edx
xor esi, 0xd5874ddd
and esi, eax
xor esi, edx
and edx, eax
lea edi, [esi + edx*2]
mov esi, ecx
xor ebx, 0x5a775fab
mov dword [ebp - 0x24], ebx
mov eax, dword [0xb42920]
mov ebx, dword [0xb4291c]
sub ebx, dword [ebp - 0x2c]
add ebx, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov ecx, esi
mov edx, edi
call ebx
movzx ecx, byte [ebp - 0x1d]
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
and cl, 1
mov eax, ecx
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x10], 0
call fcn.00748ef1
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
call fcn.0077ccd0
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
mov eax, dword [0xb42924]
mov esi, dword [0xb42914]
sub esi, dword [ebp - 0x2c]
add esi, eax
mov ecx, esi
call dword [0xb0836c]
lea ecx, [ebp - 0x48]
call esi
add esp, 0xc
pop ebp
ret