Function at 0x49f600
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x17c
mov edi, ecx
nop
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x4a5e90
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.004a5e10
mov edx, dword [0x889b28]
mov ebx, dword [0x83f970]
mov ecx, dword [0x83f964]
mov dword [ebp - 0x3c], edx
xor ecx, edx
mov edx, 0xffff16a8
mov dword [ebp - 0x38], eax
sub edx, eax
mov dword [ebp - 0x4c], edx
sub ecx, edx
add ecx, ebx
call dword [0x834360]
call ecx
mov ecx, eax
xor ecx, 0x7a90b761
mov edx, eax
xor edx, 0x7a90b771
mov ebx, eax
xor ebx, 0x7a90b77d
mov dword [ebp - 0x28], edx
mov dword [ebp + edx - 0x88], 0
mov dword [ebp - 0x24], eax
xor eax, 0x7a90b76a
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], eax
mov dword [ebp + ebx - 0x88], eax
mov dword [ebp - 0x20], ecx
mov byte [ebp + ecx - 0x88], 0
mov dword [ebp - 0x88], 0x751360
mov dword [ebp - 0x10], 2
lea eax, [ebp - 0x88]
mov dword [ebp - 0x6c], edi
mov ecx, edi
push esi
push eax
call fcn.0049e790
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax - 0x68], 0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
mov dword [ebp + eax - 0x68], ecx
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x68], 0
mov dword [ebp - 0x68], 0x752c30
mov dword [ebp - 0x10], 3
lea ecx, [ebp - 0x68]
call fcn.00583690
nop
mov eax, dword [ebp - 0x20]
lea esi, [eax + ebp]
add esi, 0xffffff78
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp + eax - 0x88]
mov dword [ebp - 0x48], esi
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
cmp dword [ebp + eax - 0x88], ecx
jbe 0x49f735
mov eax, dword [ebp - 0x48]
mov esi, dword [eax]
test ebx, ebx
je 0x49fce0
xorps xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
movups xmmword [ebp - 0xa8], xmm0
movups xmmword [ebp - 0xb8], xmm0
movups xmmword [ebp - 0xc8], xmm0
movups xmmword [ebp - 0xd8], xmm0
movups xmmword [ebp - 0xe8], xmm0
movups xmmword [ebp - 0xf8], xmm0
movups xmmword [ebp - 0x108], xmm0
movups xmmword [ebp - 0x118], xmm0
movups xmmword [ebp - 0x128], xmm0
movups xmmword [ebp - 0x138], xmm0
movups xmmword [ebp - 0x148], xmm0
movups xmmword [ebp - 0x158], xmm0
movups xmmword [ebp - 0x168], xmm0
movups xmmword [ebp - 0x178], xmm0
movups xmmword [ebp - 0x188], xmm0
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor ecx, 0x7a90b74a
mov dword [ebp - 0x44], ecx
mov byte [ebp + ecx - 0x188], 1
xor eax, 0x7a90b739
mov dword [ebp - 0x40], eax
mov byte [ebp + eax - 0x188], 1
movzx eax, byte [esi + ebx - 1]
cmp byte [ebp + eax - 0x188], 0
lea eax, [esi + ebx - 1]
jne 0x49f805
lea ecx, [ebx - 1]
nop dword [eax]
test ecx, ecx
je 0x49f809
nop
movzx edx, byte [eax - 1]
dec eax
dec ecx
cmp byte [ebp + edx - 0x188], 1
jne 0x49f7f0
sub eax, esi
jmp 0x49f80e
mov eax, 0xffffffff
mov edx, dword [ebp - 0x24]
mov ecx, edx
xor ecx, 0xbb9a0509
xor edx, 0x4465faf6
add edx, ecx
add edx, ebx
cmp eax, edx
jne 0x49f878
cmp ebx, eax
jb 0x49fce0
setne cl
movzx edi, cl
add esi, eax
sub ebx, edi
mov ecx, dword [ebp - 0x28]
mov dword [ebp + ecx - 0x88], ebx
sub ebx, eax
mov eax, dword [0x83f978]
mov ecx, dword [0x83f960]
sub ecx, dword [ebp - 0x3c]
add ecx, eax
inc ebx
add edi, esi
mov eax, dword [ebp - 0x38]
add ecx, eax
add ecx, 0xe958
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
push ebx
push edi
push esi
call ecx
add esp, 0xc
nop
mov eax, dword [ebp - 0x20]
lea ecx, [eax + ebp]
add ecx, 0xffffff98
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp + eax - 0x68]
mov dword [ebp - 0x2c], ecx
mov eax, ecx
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
cmp dword [ebp + ecx - 0x68], edx
jbe 0x49f89f
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
test esi, esi
je 0x49fced
xorps xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
movups xmmword [ebp - 0xa8], xmm0
movups xmmword [ebp - 0xb8], xmm0
movups xmmword [ebp - 0xc8], xmm0
movups xmmword [ebp - 0xd8], xmm0
movups xmmword [ebp - 0xe8], xmm0
movups xmmword [ebp - 0xf8], xmm0
movups xmmword [ebp - 0x108], xmm0
movups xmmword [ebp - 0x118], xmm0
movups xmmword [ebp - 0x128], xmm0
movups xmmword [ebp - 0x138], xmm0
movups xmmword [ebp - 0x148], xmm0
movups xmmword [ebp - 0x158], xmm0
movups xmmword [ebp - 0x168], xmm0
movups xmmword [ebp - 0x178], xmm0
movups xmmword [ebp - 0x188], xmm0
mov ecx, dword [ebp - 0x44]
mov byte [ebp + ecx - 0x188], 1
mov ecx, dword [ebp - 0x40]
mov byte [ebp + ecx - 0x188], 1
lea ecx, [eax + esi]
dec ecx
movzx edx, byte [eax + esi - 1]
add edx, dword [0x889b4c]
cmp byte [ebp + edx - 0x188], 0
jne 0x49f969
lea edx, [esi - 1]
nop dword [eax]
test edx, edx
je 0x49fa35
nop
movzx edi, byte [ecx - 1]
dec ecx
dec edx
cmp byte [ebp + edi - 0x188], 1
jne 0x49f950
sub ecx, eax
lea edx, [esi - 1]
cmp ecx, edx
jne 0x49f9b0
mov edi, dword [ebp - 0x28]
mov dword [ebp + edi - 0x68], edx
lea edi, [eax + ecx]
sub esi, ecx
lea ebx, [eax + ecx]
inc ebx
mov ecx, dword [ebp - 0x38]
add ecx, dword [0x83f978]
mov eax, dword [0x83f960]
add ecx, dword [ebp - 0x3c]
add ecx, eax
add ecx, 0xe958
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
push esi
push ebx
push edi
call ecx
add esp, 0xc
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp + esi - 0x68]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp + ecx - 0x68]
mov edx, ecx
sub edx, eax
cmp edx, 2
jae 0x49fa06
nop
movzx eax, byte [0x83f783]
mov ecx, dword [ebp - 0x24]
xor cl, 0xbc
mov byte [ebp - 0x20], cl
cmp al, cl
je 0x49fafe
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0xb3
mov edx, eax
xor dl, 0x8e
nop dword [eax]
mov eax, ecx
lock cmpxchg byte [0x83f783], dl
je 0x49fa4a
cmp al, byte [ebp - 0x20]
jne 0x49f9f0
jmp 0x49fafe
lea edx, [eax + 2]
mov dword [ebp + esi - 0x68], edx
mov edx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x30]
jbe 0x49fa1a
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x24]
xor ecx, 0x9839
mov word [edx + eax], cx
mov byte [edx + eax + 2], 0
nop
mov eax, dword [ebp - 0x28]
jmp 0x49fb37
mov ecx, 0xffffffff
lea edx, [esi - 1]
cmp ecx, edx
je 0x49f972
jmp 0x49f9b0
nop
mov ecx, dword [ebp - 0x24]
mov eax, ecx
xor eax, 0xaee99374
mov dword [ebp - 0x40], eax
mov ebx, ecx
xor ebx, 0x7a90b766
xor edi, edi
cmp ebx, 2
mov eax, 1
cmovge eax, ebx
mov dword [ebp - 0x44], eax
jl 0x49faca
mov eax, dword [ebp - 0x44]
and eax, 0x7ffffffe
mov dword [ebp - 0x38], eax
xor edi, edi
mov esi, dword [ebp - 0x40]
nop word cs:[eax + eax]
mov eax, esi
xor edx, edx
div ebx
movzx eax, byte [edx + 0x7d2720]
xor al, cl
xor al, 0x1f
add byte [edi + 0x83f780], al
lea eax, [esi + 1]
xor edx, edx
div ebx
movzx eax, byte [edx + 0x7d2720]
xor al, cl
xor al, 0x1f
add byte [edi + 0x83f781], al
add edi, 2
add esi, 2
cmp dword [ebp - 0x38], edi
jne 0x49fa90
test byte [ebp - 0x44], 1
je 0x49faec
nop
mov eax, dword [ebp - 0x40]
add eax, edi
xor edx, edx
div ebx
movzx eax, byte [edx + 0x7d2720]
xor al, byte [ebp - 0x24]
xor al, 0x1f
add byte [edi + 0x83f780], al
nop
movzx eax, byte [ebp - 0x20]
xchg byte [0x83f783], al
mov dword [ebp - 0x10], 3
nop
mov dword [ebp - 0x10], 3
sub esp, 0x10
movzx eax, byte [ebp - 0x188]
mov byte [esp + 4], al
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0x83f780
mov dword [esp], 2
mov ecx, dword [ebp - 0x2c]
call fcn.0045bd80
nop
mov eax, dword [ebp - 0x28]
mov esi, dword [0x889b28]
add esi, dword [ebp + eax - 0x88]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
cmp dword [ebp + eax - 0x88], ecx
jbe 0x49fb61
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp + edx - 0x68]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax - 0x68]
mov ecx, eax
sub ecx, ebx
cmp ecx, esi
jae 0x49fba5
nop
mov dword [ebp - 0x10], 3
sub esp, 0x10
movzx eax, byte [ebp - 0x188]
mov byte [esp + 4], al
mov dword [esp + 0xc], esi
mov eax, dword [ebp - 0x20]
mov dword [esp + 8], eax
mov dword [esp], esi
mov ecx, dword [ebp - 0x2c]
call fcn.0045bd80
jmp 0x49fbfa
nop
mov dword [0x8406b4], 0x68787d92
lea edi, [ebx + esi]
mov dword [ebp - 0x38], edi
mov dword [ebp + edx - 0x68], edi
mov edi, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x30]
jbe 0x49fbc7
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
mov eax, dword [0x83f978]
mov ecx, dword [0x83f960]
xor ecx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
add ebx, edi
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
push esi
push dword [ebp - 0x20]
push ebx
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x38]
mov byte [edi + eax], 0
nop
mov dword [ebp - 0x10], 3
mov ecx, dword [ebp - 0x6c]
lea eax, [ebp - 0x68]
push eax
call fcn.0049f250
nop
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + eax - 0x68]
cmp ecx, dword [ebp - 0x30]
jbe 0x49fc73
nop
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov edx, ecx
xor edx, 1
mov esi, ecx
and esi, 1
lea edx, [edx + esi*2]
mov edi, dword [ebp - 0x24]
mov esi, edi
xor esi, 0x7a90b89a
cmp edx, esi
jbe 0x49fc69
mov edx, edi
xor edx, 0x856f4899
lea esi, [eax + edx]
mov eax, dword [eax + edx]
sub esi, eax
mov edx, edi
xor edx, 0x7a90b745
cmp esi, edx
jae 0x49fcfa
mov edx, edi
xor edx, 0x7a90b741
add ecx, edx
mov edx, ecx
push edx
push eax
call fcn.0071996d
add esp, 8
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + eax - 0x88]
cmp ecx, dword [ebp - 0x30]
jbe 0x49fcca
nop
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
lea edx, [ecx + 1]
mov edi, dword [ebp - 0x24]
mov esi, edi
xor esi, 0x7a90b89a
cmp edx, esi
jbe 0x49fcc0
mov edx, edi
xor edx, 0x856f4899
lea esi, [eax + edx]
mov eax, dword [eax + edx]
sub esi, eax
mov edx, edi
xor edx, 0x7a90b745
cmp esi, edx
jae 0x49fd07
xor edi, 0x7a90b741
add ecx, edi
mov edx, ecx
push edx
push eax
call fcn.0071996d
add esp, 8
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x17c
pop esi
pop edi
pop ebx
pop ebp
ret 4
nop
mov dword [ebp - 0x10], 3
call fcn.00486ae0
nop
mov dword [ebp - 0x10], 3
call fcn.00486ae0
nop
mov dword [ebp - 0x10], 0
call fcn.006fce21
nop
mov dword [ebp - 0x10], 1
call fcn.006fce21
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
nop
mov eax, dword [0x83f974]
mov esi, dword [0x83f968]
or esi, dword [ebp - 0x3c]
sub esi, dword [ebp - 0x4c]
add esi, eax
mov ecx, esi
call dword [0x834360]
lea ecx, [ebp - 0x68]
call esi
add esp, 0x10
pop ebp
ret