Function at 0x737f60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xb0
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x739330
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.00739310
mov edx, dword [0xb42b44]
mov ecx, dword [0xb42b10]
mov ebx, 0x3817
sub ebx, eax
sub ecx, ebx
add ecx, edx
call dword [0xb0836c]
call ecx
mov ecx, dword [0xb42b34]
mov esi, dword [0xb42b14]
mov dword [ebp - 0x3c], ebx
sub esi, ebx
mov ebx, eax
add esi, ecx
mov ecx, esi
call dword [0xb0836c]
mov ecx, edi
call esi
mov eax, ebx
xor eax, 0x4bc6e1d9
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x68], eax
mov edx, ebx
xor edx, 0x4bc6e1da
mov dword [ebp - 0x6c], edx
movzx eax, byte [0xb42a5d]
mov ah, bl
xor ah, 0xbf
cmp al, ah
je 0x7380f1
mov ch, bl
mov cl, bl
xor cl, 0x46
xor ch, 0x5b
nop
mov al, cl
lock cmpxchg byte [0xb42a5d], ch
je 0x738025
cmp al, ah
jne 0x738010
jmp 0x7380f1
mov esi, ebx
xor esi, 0x4bc6e1db
cmp esi, 2
mov ecx, 1
cmovge ecx, esi
xor esi, esi
cmp ecx, 8
jb 0x7380d3
xor esi, esi
cmp ecx, 0x20
jb 0x73809a
mov esi, ecx
and esi, 0x7fffffe0
xor edi, edi
nop word cs:[eax + eax]
movaps xmm0, xmmword [edi + 0xac0bd0]
movaps xmm1, xmmword [edi + 0xac0be0]
xorps xmm0, xmmword [edi + 0xb42a50]
xorps xmm1, xmmword [edi + 0xb42a60]
movaps xmmword [edi + 0xb42a50], xmm0
movaps xmmword [edi + 0xb42a60], xmm1
add edi, 0x20
cmp esi, edi
jne 0x738060
cmp ecx, esi
je 0x7380e4
test cl, 0x18
je 0x7380d3
mov edi, esi
mov esi, ecx
and esi, 0x7ffffff8
nop word cs:[eax + eax]
movsd xmm0, qword [edi + 0xb42a50]
movsd xmm1, qword [edi + 0xac0bd0]
xorps xmm1, xmm0
movlps qword [edi + 0xb42a50], xmm1
add edi, 8
cmp esi, edi
jne 0x7380b0
jmp 0x7380e0
mov al, byte [esi + 0xac0bd0]
xor byte [esi + 0xb42a50], al
inc esi
cmp ecx, esi
jne 0x7380d3
xchg byte [0xb42a5d], ah
mov dword [ebp - 0x10], 3
mov dword [ebp - 0x2c], ebx
mov eax, dword [0xb42a58]
mov dword [ebp - 0x74], eax
movsd xmm0, qword [0xb42a50]
movsd qword [ebp - 0x7c], xmm0
mov eax, dword [0xac0bc4]
mov dword [ebp - 0x20], eax
mov eax, dword [0xac0bcc]
mov dword [ebp - 0x58], eax
mov eax, 0xac0bb4
add eax, dword [0xac0bb4]
mov dword [ebp - 0x34], eax
mov byte [ebp + edx - 0x7c], 0
mov dword [ebp - 0x10], 3
lea edx, [ebp - 0x7c]
mov ecx, dword [ebp + 0x14]
call fcn.00737f10
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x2c]
mov eax, esi
xor eax, 0xce394940
mov edi, dword [0xb42aec]
cmp dword [0xb42b00], eax
jne 0x738185
mov edx, 2
sub edx, edi
mov ecx, edi
sub ecx, edx
imul ecx, edx
mov eax, edi
shl eax, cl
mov dword [0xb42afc], 0xa5cb4c51
sub edi, eax
imul edi, eax
mov ecx, eax
shl edi, cl
and edi, eax
jmp 0x73818a
lea edx, [edi + 1]
and edi, edx
mov dword [0xb42aec], edx
xor edx, edx
mov dword [ebp - 0x5c], edi
test edi, edi
je 0x738736
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x38]
jbe 0x738289
cmp dword [ebp - 0x5c], 0
sete byte [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov esi, eax
xor esi, 0x61fd5545
xor ecx, ecx
cmp dword [0xb42b08], esi
sete byte [ebp - 0x24]
mov edi, eax
xor edi, 0xabcf33b5
inc edi
mov ebx, edi
sub ebx, edx
mov esi, dword [ebp - 0x7c]
movzx edx, byte [0xb53228]
add ebx, dword [0xac0bb0]
cmp ebx, edi
mov ebx, eax
setne dh
and dh, byte [ebp - 0x20]
or dh, dl
mov byte [0xb53228], dh
test dl, dl
jne 0x73821c
test byte [0xb532c0], 1
jne 0x73821c
movzx eax, byte [ebp - 0x24]
mov cl, al
mov eax, dword [ebp - 0x30]
lea edi, [ecx + eax]
inc edi
mov eax, ebx
xor eax, 0x4bc6ee29
cmp edi, eax
jbe 0x738264
mov eax, dword [esi - 4]
mov ecx, ebx
xor ecx, 0xb4391e2a
add ecx, esi
sub ecx, eax
mov edx, ebx
xor edx, 0x4bc6e1f6
cmp ecx, edx
jae 0x738958
mov ecx, ebx
xor ecx, 0x50dd399d
mov edi, dword [ebp - 0x30]
mov edx, edi
xor edx, ecx
and edi, ecx
mov esi, ebx
xor esi, 0x4bc6e1f2
sub esi, ecx
add esi, edx
lea edi, [esi + edi*2]
mov dword [ebp - 0x10], 0xffffffff
mov esi, eax
mov eax, dword [0xb42b3c]
mov ebx, dword [0xb42b20]
sub ebx, dword [ebp - 0x3c]
add ebx, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, esi
mov edx, edi
call ebx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x2c]
mov edx, eax
xor edx, 0x4bc6e1de
mov dword [ebp - 0x5c], edx
mov edx, eax
xor edx, 0x4bc6e1c6
mov dword [ebp - 0x54], edx
mov edx, eax
xor edx, 0x4bc6e1ce
mov dword [ebp - 0x98], edx
mov edx, eax
xor edx, 0x4bc6e129
mov dword [ebp - 0x48], edx
mov edx, eax
xor edx, 0xb4391ed6
mov dword [ebp - 0x30], edx
mov edx, eax
xor edx, 0x4ac6e045
mov dword [ebp - 0x94], edx
mov edx, eax
xor edx, 0xb4391e26
or edx, dword [ebp - 0x38]
mov dword [ebp - 0x84], edx
mov edx, eax
xor edx, 0x4bc6ee28
mov dword [ebp - 0x80], edx
mov edx, eax
xor edx, 0x4bc6e1f2
mov dword [ebp - 0x34], edx
mov edx, eax
xor edx, 0x4bc6e1f5
mov esi, eax
xor esi, 0xd35dd390
mov dword [ebp - 0xa8], esi
add edx, esi
mov dword [ebp - 0xac], edx
mov edx, eax
xor edx, 0xb4391e36
mov dword [ebp - 0xa4], edx
mov edx, eax
xor edx, 0x4bc6e1c9
mov dword [ebp - 0xa0], edx
mov edx, eax
xor edx, 0x4e78402a
mov dword [ebp - 0x64], edx
mov edx, eax
xor edx, 0x4bc6ee29
mov dword [ebp - 0x60], edx
mov edx, eax
xor edx, 0xb4391e2a
mov dword [ebp - 0xb4], edx
xor eax, 0x4bc6e1f6
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x40], ecx
nop word cs:[eax + eax]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x8c]
je 0x73871f
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 0x10]
xor ecx, ecx
mov dword [ebp - 0x9c], edi
cmp esi, edi
mov dword [ebp - 0x40], eax
je 0x7386d9
mov edx, esi
mov eax, esi
jmp 0x7383c2
mov eax, dword [ebp - 0x44]
add eax, 0x14
cmp eax, dword [ebp - 0x9c]
je 0x738718
mov dword [ebp - 0x44], eax
mov ebx, dword [eax]
mov eax, ebx
mov ecx, dword [ebp - 0x5c]
shr eax, cl
mov edx, ebx
mov ecx, dword [ebp - 0x54]
shr edx, cl
mov dword [ebp - 0x20], edx
mov edx, ebx
not edx
mov ecx, ebx
xor ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x30]
and edx, esi
or edx, ecx
mov ecx, eax
xor ecx, esi
mov edi, eax
mov esi, dword [ebp - 0x48]
and eax, esi
not eax
and eax, ecx
xor edi, esi
or eax, edi
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov ecx, dword [ebp - 0x98]
shr esi, cl
mov ecx, dword [ebp - 0x20]
mov edi, ecx
not edi
xor ecx, dword [ebp - 0x48]
and edi, dword [ebp - 0x30]
or edi, ecx
not edx
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], edx
xor ebx, edx
xor ebx, 0xcada7c13
mov ecx, dword [ebp - 0x94]
imul ebx, ecx
not eax
xor ebx, eax
imul ebx, ecx
not edi
xor ebx, edi
imul ebx, ecx
xor ebx, esi
imul ebx, ecx
mov ecx, dword [ebp + 0xc]
and ebx, dword [ecx + 0xd4]
mov edx, dword [ecx + 0xc0]
mov esi, dword [ecx + 0xc8]
mov ecx, dword [esi + ebx*8 + 4]
mov dword [ebp - 0x28], edx
cmp ecx, edx
je 0x7383b0
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
xor edx, ecx
xor edx, 0x4b391e29
and edx, ecx
mov ecx, dword [ebp - 0x54]
shl edi, cl
or edi, edx
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x5c]
shl eax, cl
or eax, edi
or eax, dword [ebp - 0x20]
cmp eax, dword [edx + 8]
je 0x7384b0
add ebx, ebx
mov ecx, dword [esi + ebx*4]
nop dword [eax + eax]
cmp edx, ecx
je 0x7383b0
mov edx, dword [edx + 4]
cmp eax, dword [edx + 8]
jne 0x7384a0
cmp edx, dword [ebp - 0x28]
je 0x7383b0
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x90], eax
cmp ecx, eax
je 0x7383b0
mov dword [ebp - 0x50], edx
jmp 0x7384f5
mov eax, dword [ebp - 0x4c]
add eax, 0x18
mov dword [ebp - 0x4c], eax
cmp eax, dword [ebp - 0x90]
je 0x7383b0
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x88], eax
cmp ecx, eax
je 0x7384e0
nop word cs:[eax + eax]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov edx, ecx
mov eax, dword [ebp - 0x38]
cmp dword [ecx + 0x14], eax
jbe 0x73852a
mov edx, dword [ecx]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp - 0x54]
mov dword [ebp - 0x58], ecx
jae 0x738560
movups xmm0, xmmword [edx]
movups xmmword [ebp - 0x7c], xmm0
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x28], eax
test ecx, ecx
jne 0x7385f5
jmp 0x738633
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x38]
xor ecx, eax
and ecx, dword [ebp - 0x24]
xor ecx, eax
cmp ecx, 0x7fffffff
mov eax, 0x7fffffff
cmovae ecx, eax
mov dword [ebp - 0x10], 2
cmp ecx, dword [ebp - 0x80]
mov dword [ebp - 0x28], ecx
jbe 0x7385c0
mov eax, dword [ebp - 0x34]
add ecx, eax
call fcn.0053d610
mov ecx, eax
add eax, dword [ebp - 0xac]
not eax
add eax, dword [ebp - 0xa8]
and eax, dword [ebp - 0xa4]
or eax, dword [ebp - 0xa0]
not eax
mov dword [eax - 4], ecx
jmp 0x7385c6
inc ecx
call fcn.0053d610
mov dword [ebp - 0x7c], eax
mov esi, dword [ebp - 0x24]
mov ecx, esi
xor ecx, 1
mov edx, esi
and edx, 1
lea ecx, [ecx + edx*2]
push ecx
push dword [ebp - 0x20]
push eax
call fcn.0077cce0
add esp, 0xc
mov dword [ebp - 0x6c], esi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0xffffffff
xor ebx, ebx
nop
mov esi, dword [ebp - 0x28]
movsx eax, byte [esi + ebx]
mov dword [ebp - 0x20], eax
mov eax, dword [0xb42b30]
mov edi, dword [0xb42b1c]
sub edi, dword [ebp - 0x3c]
add edi, eax
mov ecx, edi
call dword [0xb0836c]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x64]
call edi
mov byte [esi + ebx], al
inc ebx
cmp dword [ebp - 0x24], ebx
jne 0x738600
mov eax, dword [0xb42b48]
mov esi, dword [0xb42b18]
sub esi, dword [ebp - 0x3c]
add esi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xb0836c]
lea ecx, [ebp - 0x7c]
push 0
push dword [ebp - 0x4c]
call esi
mov edx, dword [ebp - 0x68]
cmp edx, dword [ebp - 0x38]
jbe 0x7386b1
mov edi, dword [ebp - 0x7c]
lea ebx, [edx + 1]
cmp ebx, dword [ebp - 0x60]
mov dword [ebp - 0x20], eax
jbe 0x738690
mov ecx, dword [edi - 4]
add edi, dword [ebp - 0xb4]
sub edi, ecx
cmp edi, dword [ebp - 0xb0]
jae 0x73894c
add edx, dword [ebp - 0x34]
mov ebx, edx
mov edi, ecx
mov eax, dword [0xb42b3c]
mov esi, dword [0xb42b20]
sub esi, dword [ebp - 0x3c]
add esi, eax
mov ecx, esi
call dword [0xb0836c]
mov ecx, edi
mov edx, ebx
call esi
mov eax, dword [ebp - 0x20]
cmp eax, 0xffffffff
mov edx, dword [ebp - 0x50]
jne 0x7386d0
mov ecx, dword [ebp - 0x58]
add ecx, 0x18
cmp ecx, dword [ebp - 0x88]
jne 0x738510
jmp 0x7384e0
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x10], 2
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.0072de90
mov eax, dword [ebp - 0x40]
mov edx, dword [eax + 8]
mov ecx, dword [ebp + 0x14]
push dword [ebp - 0x20]
call fcn.00737f20
add esp, 4
jmp 0x738380
mov eax, dword [ebp - 0x40]
xor ecx, ecx
jmp 0x7386d9
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
add esp, 0xb0
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
xor ecx, 0xc87696b4
xor eax, eax
cmp dword [0xb42b04], ecx
sete al
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + eax*4]
cmp dword [ebp - 0x58], 0
jle 0x73819d
mov edi, dword [ebp - 0x2c]
mov edx, edi
xor edx, 0x75f5e655
mov esi, edi
xor esi, 0x8a0a19aa
add esi, edx
mov edx, edi
xor edx, 0x7d510c5a
add edx, esi
mov esi, edi
shl esi, 0x1f
xor esi, edi
xor esi, 0x82aef3a5
add esi, edx
lea ebx, [edi*4]
mov edx, dword [ebp - 0x20]
add edx, esi
add edx, 0xac0bc6
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x34]
lea eax, [edx + eax*4]
add eax, ecx
mov dword [ebp - 0x28], eax
lea ecx, [edi*8]
xor ecx, 0x988f9b51
mov edx, edi
xor edx, 0x99381923
xor ebx, 0x165ced46
mov esi, edi
xor esi, 0x66c7e6dc
xor eax, eax
add esi, edx
adc ebx, ecx
add esi, 1
mov dword [ebp - 0x4c], esi
adc ebx, 0
mov dword [ebp - 0x54], ebx
mov ecx, edi
shr ecx, 3
mov edx, edi
shl edx, 0x1d
xor edx, edi
xor edx, 0x8bc6e1d2
mov dword [ebp - 0x48], edx
xor ecx, 0x978dc3a
mov dword [ebp - 0x88], ecx
mov ecx, edi
xor ecx, 0x4bc6e1d5
mov dword [ebp - 0x44], ecx
mov ecx, edi
xor ecx, 0x988c96e5
mov dword [ebp - 0x84], ecx
xor edi, 0x4bc6e1d2
mov dword [ebp - 0x20], edi
mov ecx, dword [0xb42b0c]
mov dword [ebp - 0x80], ecx
xor edx, edx
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
jmp 0x73886f
mov ecx, dword [ebp - 0x24]
xor ecx, edx
mov edx, ecx
mov ecx, eax
mov edi, dword [ebp - 0x20]
xor ecx, edi
mov esi, dword [ebp - 0x2c]
xor esi, eax
xor esi, 0x4bc6e1d2
and eax, edi
or eax, esi
mov esi, ecx
not esi
and esi, eax
lea eax, [ecx + esi*2]
cmp eax, dword [ebp - 0x58]
jge 0x73819d
mov dword [ebp - 0x24], edx
mov ebx, dword [ebp - 0x4c]
add ebx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x54]
adc ecx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x50]
lea esi, [edi + eax]
sub ebx, esi
sbb ecx, 0
cmp ebx, dword [ebp - 0x48]
sbb ecx, dword [ebp - 0x88]
mov edx, dword [edi + eax]
jge 0x7388d5
add eax, ebx
mov ecx, dword [ebp - 0x44]
shl ebx, cl
mov esi, 0xffffffff
mov ecx, ebx
shl esi, cl
not esi
mov dword [0xb42af4], 0x384e94e0
mov ecx, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x60]
lea edi, [ecx + ebx*4]
add edi, 4
add edi, dword [ecx + ebx*4 + 4]
mov dword [ebp - 0x28], edi
and edx, esi
lea ecx, [ebx + 1]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 0x84]
jne 0x738840
mov ecx, edx
sub edx, dword [ebp - 0x24]
mov dword [ebp - 0x24], edx
shl edx, cl
mov ebx, eax
mov ecx, dword [ebp - 0x20]
shl eax, cl
mov ecx, eax
neg ecx
mov edi, dword [ebp - 0x20]
xor edi, ecx
mov esi, dword [ebp - 0x2c]
xor esi, ecx
xor esi, 0x34391e2d
and esi, ecx
lea ecx, [edi + esi*2]
shl eax, cl
and eax, ecx
mov edi, 2
sub edi, eax
imul edi, eax
mov esi, edi
mov ecx, eax
shl esi, cl
xor edx, dword [ebp - 0x24]
xor ebx, dword [ebp - 0x20]
sub edi, esi
imul esi, esi
imul esi, edi
mov eax, ebx
sub eax, esi
imul eax, esi
sub ebx, eax
imul ebx, eax
mov eax, ebx
cmp dword [ebp - 0x58], ebx
jg 0x73886f
jmp 0x73819d
mov dword [ebp - 0x10], 1
call fcn.00748ef1
mov dword [ebp - 0x10], 0
call fcn.00748ef1
nop word cs:[eax + 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 [0xb42b40]
mov esi, dword [0xb42b24]
sub esi, dword [ebp - 0x3c]
add esi, eax
mov ecx, esi
call dword [0xb0836c]
lea ecx, [ebp - 0x7c]
call esi
add esp, 0xc
pop ebp
ret