Function at 0x4b99fb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
push 8
call fcn.0056e0e2
add esp, 4
mov dword [ebp - 4], eax
inc ebp
cld
mov edi, eax
mov esi, 0xe25
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
stc
jb 0x4b9a31
por mm0, qword [ecx]
jle 0x4b9a12
jmp 0x4b9a34
add dword [esi - 0x23], edi
fld qword [ebp + 0x34]
ftst
fnstsw ax
test ah, 1
inc ebp
xor al, 0xd9
in al, 0xdf
loopne 0x4b9a32
les eax, [ecx]
je 0x4b9a42
fchs
fcomp qword [0xe8c]
fnstsw ax
test ah, 0x41
je 0x4b9a67
jmp 0x4b9a56
jmp 0x4b9a59
mov dword [ebp + 0x34], 0x9999999a
mov dword [ebp + 0x38], 0x3fe99999
jmp 0x4b9a6a
stc
jb 0x4b9a6e
sub byte [eax + 1], 3
add byte [eax + 0x1eb006a], al
jle 0x4b9ae1
push 0x80000301
push 0
jmp 0x4b9a78
push 0
add byte [eax], al
add byte [eax], al
push 0x80000301
push 0
jmp 0x4b9a87
push 0
push 0x40001
push 0
clc
jae 0x4b9a97
mov edx, 0x835ff
push dword [8]
or byte [eax], al
add byte [eax], al
push 3
mov ebx, 0xb8
mov eax, 3
clc
jae 0x4b9ab0
jne 0x4b9a99
call fcn.0056e106
push ecx
inc esi
or eax, dword [eax]
add esp, 0x28
jmp 0x4b9abb
jmp 0x4b9abe
push 0x80000301
push 0
stc
jb 0x4b9ac9
mov ch, byte [eax - 0x38]
add byte [eax], al
add byte [eax + 1], ch
add byte [eax], al
add byte [ebx + 0x67c], bh
push 0xc8
push 1
mov ebx, 0x67c
jmp 0x4b9adb
call fcn.0056e0ee
add esp, 0x10
les edx, [eax]
clc
jae 0x4b9ae7
je 0x4b9ae1
stc
jb 0x4b9aeb
jae 0xf4bd76d
cmp dword [ebp + 0x3c], 0
jne 0x4b9c7e
test dword [ecx - 0x14ffffff], ecx
add dword [edx - 0x75fe8c08], eax
jmp 0x4b9af8
clc
jae 0x4b9afc
mov ch, byte [eax + 1]
push es
add byte [eax + 0xe8], al
add byte [ebx - 0x3cf9dbfc], al
add dword [esp], 6
ret
invalid
push 0x80000601
call fcn.004b9b06
stc
jb 0x4b9c82
invalid
jmp 0x4b9c85
push 0x80000601
clc
jae 0x4b9c8e
mov edx, 0xff3875ff
jne 0x4b9cc8
push dword [ebp + 0x38]
push dword [ebp + 0x34]
push 0x80000004
push 0
jmp 0x4b9c9e
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
test eax, eax
jne 0x4b9cac
mov eax, 0
push eax
push 0x80000004
push 0
stc
jb 0x4b9cb8
jnp 0x3d6a51a
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
jne 0x4b9cc6
mov eax, 0
push eax
push 0x80000301
push 0
clc
jae 0x4b9cd2
add dword [ebx], eax
add byte [eax + 0x73f8006a], al
add dword [edi + 0x682475ff], ecx
add dword [ebx], eax
add byte [eax + 0x73f8006a], al
add dword [ebp + 0x681c75ff], edi
invalid
push dword [ebp + 0x24]
push 0x80000301
push 0
clc
jae 0x4b9ce0
mov ebp, 0x681c75ff
push dword [ebp + 0x1c]
push 0x80000301
push 0
clc
jae 0x4b9cee
add dword [ebx], eax
add byte [eax + 0x73f8006a], al
add dword [edi - 1], edi
jg 0x4b9cee
push dword [ebp + 0x20]
jne 0x4b9d11
push 0x80000301
push 0
jmp 0x4b9cfb
push dword [ebp + 0x18]
push 0x40001
push 0
stc
jb 0x4b9d09
ud0
push dword [8]
push 8
mov ebx, 0x328
add byte [eax], al
add byte [ebx + 0x328], bh
mov eax, 3
jmp 0x4b9d21
call fcn.0056e106
add esp, 0x64
mov dword [ebp - 0x10], eax
stc
jb 0x4b9d30
xchg byte [edx], ch
push 0
push 0
push 0
push 0x80000004
push 0
clc
jae 0x4b9d41
punpckhbw mm0, qword [edx]
add eax, 0x4680000
add byte [eax], al
sub byte [edx], 0xeb
add dword [edi], ecx
push 0x502
push 0x80000004
push 0
jmp 0x4b9d50
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x4b9d5c
mov eax, 0
push eax
push 3
mov ebx, 0x190
jmp 0x4b9d6a
call fcn.0056e0ee
add esp, 0x28
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x4b9d85
push ebx
call fcn.0056e0e8
add esp, 4
stc
jb 0x4b9d89
mov dh, 0xf9
stc
jb 0x4b9d8d
sub ebx, 0x458b8101
in al, dx
jmp 0x4b9d90
mov eax, dword [ebp - 0x14]
push eax
jmp 0x4b9d97
mov ebx, dword [ebp - 4]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x4b9db5
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x4b9db1
imul eax, dword [ebx]
jmp 0x4b9da6
mov ecx, eax
test ecx, ecx
je 0x4b9dd4
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x4b9dcd
push ebx
push eax
call fcn.0056e0e8
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x4b9dbb
call fcn.0056e0e8
add esp, 4
pop eax
mov dword [ebp - 4], eax
jmp 0x4b9de3
jmp 0x4b9de6
cmp dword [ebp + 0x14], 0
je 0x4b9e69
stc
jb 0x4b9df4
jnp 0x45349a56
mov ebx, dword [ebp - 4]
call fcn.00499540
mov eax, 1
cmp eax, ecx
jl 0x4b9e12
idiv ebp
invalid
push 1
call fcn.0056e0f4
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x14], ebx
clc
jae 0x4b9e1e
psubb mm6, qword [ebx + 1]
clc
jae 0x4b9e22
punpckhbw mm0, qword [eax + eax]
add byte [eax + 0x1eb006a], al
jnp 0x3d78a8e
push 0x80000004
push 0
jmp 0x4b9e2c
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx]
test eax, eax
jne 0x4b9e3a
mov eax, 0
push eax
push 1
mov ebx, 0x9dc
stc
jb 0x4b9e49
mov eax, gs
mov al, byte [0x83000b42]
les edx, [eax]
call fcn.0056e0ee
add esp, 0x10
mov dword [ebp - 0x18], eax
jmp 0x4b9e57
stc
jb 0x4b9e5b
jae 0xf4c86dd
cmp dword [ebp - 0x18], 0
jg 0x4b9e69
pop dword [eax + eax]
add byte [eax], al
xor eax, eax
jmp 0x4b9e6e
mov eax, 1
jmp 0x4b9e71
test eax, eax
je 0x4b9e8b
clc
jae 0x4b9e7d
psubb mm6, qword [ebx + 1]
clc
jae 0x4b9e81
psubsw mm2, mm3
add byte [eax], al
add cl, ch
add byte [eax], al
add byte [eax], al
jmp 0x4b9f59
stc
jb 0x4b9e8f
mov bh, 0xe8
add byte [eax], al
add byte [eax], al
call 0x4b9e94
add dword [esp], 6
ret
mov eax, 1
cmp eax, ecx
jl 0x4b9eff
push 1
call fcn.0056e0f4
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x10], ebx
call fcn.004b9f0c
stc
jb 0x4b9f5d
ja 0x4b9ee9
mov ebx, dword [ebp - 4]
pop ebp
cld
call fcn.00499540
mov eax, 1
cmp eax, ecx
jl 0x4b9f7b
push 1
call fcn.0056e0f4
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x10], ebx
call fcn.004b9f88