Function at 0x49a32
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 0x20]
push ebx
push esi
xor esi, esi
push edi
mov edi, dword [ebp + 0x18]
mov dword [eax], esi
test dword [edi], 0x100001
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], 0x18
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
jne 0x49b17
cmp dword [0x74f778bc], esi
jne 0x773b9
push dword [ebp - 4]
call 0x42d5d
mov esi, eax
test esi, esi
je 0x773c1
test byte [edi], 2
mov eax, dword [ebp + 0x20]
je 0x49489
or dword [eax], 0x20000000
or dword [esi + 0x14], 2
test byte [edi], 0x20
jne 0x773cd
test dword [edi], 0x200
jne 0x694f1
test byte [edi], 8
je 0x494a7
or dword [esi + 0x14], 8
test byte [edi], 4
je 0x494b0
or dword [esi + 0x14], 4
push 0x10
pop ebx
test byte [edi], bl
je 0x494ba
or dword [esi + 0x14], ebx
test dword [edi], 0x10000
je 0x494c6
or dword [esi + 0x14], 0x20
test dword [edi], 0x20000
jne 0x773d8
mov eax, 0x4000
test dword [edi], eax
je 0x494de
or dword [esi + 0x14], eax
test byte [edi], 1
jne 0x6d9ef
mov dword [esi], ebx
call fcn.000498df
test al, 2
jne 0x773e4
push 0
lea eax, [esi + 4]
push eax
push dword [ebp + 0x24]
call fcn.000498a1
mov dword [ebp + 0x14], eax
test eax, eax
jl 0x694fd
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 4]
mov dword [eax + 8], esi
mov dword [eax], 0x8003
mov dword [eax + 4], ecx
xor esi, esi
cmp dword [ebp + 0x14], 0
jl 0x694fd
cmp dword [ebp - 0xc], 0
pop edi
pop esi
pop ebx
jne 0x6da19
cmp dword [ebp - 0x10], 0
jne 0x6da26
mov eax, dword [ebp + 0x14]
leave
ret 0x20
inc dword [esi]
mov eax, dword [esi]
mov byte [eax], cl
inc dword [esi]
pop edi
pop esi
pop ebp
ret 0x10
add byte [ebx + 0x56], dl
push edx
call fcn.00049a32
mov ecx, eax
mov eax, dword [ebp + 8]
mov esi, dword [eax]
add cl, 0x7f
mov byte [esi], cl
inc dword [eax]
cmp edx, 0x1000000
add byte [ecx], al
mov ecx, dword [eax]
jge 0x759c3194
shr dh, 0x97
jne 0x49a22
mov bl, 0x97
jne 0x49a67
sahf
xchg edi, eax
jne 0x499df
mov ebx, 0x99107597
xchg edi, eax
jne 0x49a53
sahf
xchg edi, eax
jne 0x49a92
jne 0x499fa
fcomp qword [ecx - 0x6863118b]
cdq
jne 0x49a0f
pushfd
xchg edi, eax
jne 0x499b9
cwde
xchg edi, eax
jne 0x49a7a
rcl dword [edi - 0x624d108b], 0x75
daa
xchg edi, eax
jne 0x49a1c
mov dl, 0x9d
jne 0x49a58
cdq
jne 0x49a62
movsb byte es:[edi], byte [esi]
xchg edi, eax
jne 0x49a42
cmc
xchg edi, eax
jne 0x49a86
movsb byte es:[edi], byte [esi]
xchg edi, eax
jne 0x49a6e
adc dword [eax - 0x682e578b], ebx
jne 0x49a49
cwde
jne 0x499ed
rcl dword [edi + 0x75]
add byte [eax], al
add byte [eax - 0x6a88b56c], dh
inc edi
dec edx
ja 0x499e8
aas
dec ebx
ja 0x49a7e
and eax, 0x89774a0d
ror dword [edx + 0x77], 0x18
or eax, 0xc189774a
dec edx
ja 0x49a79
xor cl, byte [ebx + 0x77]
dec edi
dec ebx
ja 0x49ab4
retf
ja 0x49aad
dec cx
ja 0x49ac7
push edi
dec edx
ja 0x49af0
mov ch, 0x49
ja 0x49aea
dec ebp
dec edx
ja 0x49aac
push edx
dec edx
ja 0x49a7d
add byte [eax], al
add bh, cl
add byte [eax], al
iretd
int 0x4a
ja 0x49a3d
mov eax, 0xa1774b13
adc ecx, dword [ebx + 0x77]
dec ebx
ja 0x49a2a
mov eax, dword [0xc4774b35]
xor eax, 0xcac4774b
dec edx
ja 0x49a19
ja 0x49a51
retf 0x774a
fimul dword [edx + 0x77]
adc esi, esi
xor esi, dword [edi + 0x5d]
dec edx
ja 0x49aa6
div byte [ebx]
ja 0x49af6
aaa
dec ebx
ja 0x49ace
and ecx, dword [edx + 0x77]
cmp byte [ebx + 0x73bf774a], 0x71
jne 0x49b19
ja 0x49a21
mov ebx, 0x73bf774a
jno 0x49b1d
jo 0x49a84
fimul dword [edx + 0x77]
dec edx
ja 0x49aad
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], al
stosd dword es:[edi], eax
jno 0x49b29
add dword [ebx - 0x553e8a8f], ebp
jno 0x49b2d
shr dword [edx - 0x54588a8f], 0x71
jne 0x49a69
cmpsd dword [esi], dword es:[edi]
stosd dword es:[edi], eax
jno 0x49b31
lodsb al, byte [esi]
wait
jno 0x49b35
div dword [ebp + 0x71]
jne 0x49a56
jae 0x49b38
jne 0x49ac9
add byte [eax], al
add byte [eax], bh
in eax, dx
dec ebx
ja 0x49ad2
cmp eax, 0x7328774b
dec edx
dec ebx
ja 0x49afd
sub byte [ebx + 0x4a], dh
jae 0x49b21
ja 0x49a86
dec ebp
dec esp
ja 0x49aeb
inc ebp
dec ebx
ja 0x49a8b
cmp dword [ebx + 0x77], ecx
fisubr word [edi]
dec ebx
ja 0x49a88
mov ebx, 0x47fa774a
dec edx
ja 0x49ae7
inc edi
dec edx
ja 0x49a83
xchg edx, eax
mov ebx, 0x28c774a
dec edx
ja 0x49a81
add cl, byte [eax + 0x77]
dec ebp
dec eax
ja 0x49b46
aaa
dec ebx
ja 0x49afe
cmp al, 0x4b
dec ebx
ja 0x49ad4
xor ecx, dword [ebx + 0x77]
sub byte [edi], dh
dec ebx
ja 0x49a9f
dec ebx
ja 0x49b8c
or cl, byte [edx + 0x77]
mov ah, 0x65
dec ebx
ja 0x49ab0
mov dword [edx + 0x77], ecx
adc ebx, ebx
dec edx
ja 0x49aef
ja 0x49b2c
fisttp dword [edx + 0x77]
rol byte [ebx - 0xc9a88b7], cl
or dword [ecx + 0x77], 0x65
dec esi
dec esi
ja 0x49b06
pushfd
dec edx
ja 0x49b22
pushfd
dec edx
ja 0x49af2
lds ebx, [edx + 0x39397736]
dec ebx
ja 0x49b3f
lcall 0x774b, 0x39397736
cmp dword [ebx + 0x77], ecx
or bh, byte [edi - 0x359b88b6]
mov edi, 0xca64774a
retf 0x774a
dec edx
ja 0x49b63
cmp al, 0x4b
ja 0x49b84
inc ebp
dec ebx
ja 0x49b8b
inc esi
mov edx, 0xba60774a
dec edx
ja 0x49b78
dec edx
ja 0x49ba9
mov edx, 0x452b774a
inc ebp
dec ebx
ja 0x49b21
adc ecx, dword [ebx + 0x77]
dec ebx
ja 0x49b97
inc edx
pop ecx
dec edx
ja 0x49b6a
pop ecx
dec edx
ja 0x49ba4
jae 0x49ba9
ja 0x49b70
minps xmm1, xmmword [edx + 0x77]
sbb bh, byte [ebx]
dec edx
ja 0x49bb6
pop ebp
dec edx
ja 0x49b7f
cmp ecx, dword [edx + 0x77]
dec ebp
and byte [esi + 0x77], al
jne 0x49bb5
inc esi
ja 0x49be2
inc edi
dec edx
ja 0x49b60
out dx, eax
and cl, byte [edx + 0x77]
outsb dx, byte [esi]
ja 0x49be3
fisttp dword [ecx + 0x77]
arpl word [ebx], si
dec ebx
ja 0x49b98
sbb eax, dword [ebp + 0x4b]
inc ebp
dec ebx
ja 0x49b7c
inc eax
dec ebx
ja 0x49b44
mov edi, 0x57749ad
lodsd eax, dword [esi]
dec ecx
ja 0x49b8e
sahf
dec edx
ja 0x49b73
out 0x76, al
jbe 0x49bda
dec ebx
ja 0x49be1
popfd
dec edx
ja 0x49b83
wait
dec edx
ja 0x49b70
xlatb
pop ecx
dec edx
ja 0x49b55
jge 0x49be9
ja 0x49b51
dec ebx
ja 0x49b75
rcr cl, 1
invalid
dec edx
ja 0x49c13
dec edx
ja 0x49ba6
pop eax
dec edx
ja 0x49bb1
mov edi, 0x992d774a
cdq
dec ebx
ja 0x49c14
test byte [edx + 0x77], cl
cmc
and eax, 0x1f61774a
dec ebx
ja 0x49b52
inc ecx
dec ebx
ja 0x49b54
push esp
dec edx
ja 0x49c49
retf 0x774a
mov edx, 0xbccc774a
dec edx
ja 0x49b8d
ja 0x49ba1
mov esp, 0xbcb4774a
mov esp, 0x77a0774a
xor eax, 0x35776077
dec edx
ja 0x49b7d
ja 0x49c14
ja 0x49c41
ja 0x49c18
xor eax, 0x4a2aee77
ja 0x49bd1
ja 0x49bd3
sub cl, byte [edx + 0x77]
call 0x807be6c6
invalid
inc esi
dec edx
ja 0x49bb5
dec ebx
ja 0x49c67
mov edx, 0xdb36774a
dec edx
ja 0x49c0e
dec edx
ja 0x49c2f
fisttp dword [edx + 0x77]
adc dword [esi - 0x56f188b6], esp
dec edx
ja 0x49bf5
cmpsb byte [esi], byte es:[edi]
dec edx
ja 0x49c0f
test eax, 0xbbf0774a
dec edx
ja 0x49b8f
mov ebx, 0x3386774a
dec ebx
ja 0x49c57
xor ecx, dword [ebx + 0x77]
dec edx
cmovp esi, dword [edi - 0x40]
dec edx
ja 0x49bd1
mov ebx, 0x774a
ja 0x49c15
add byte [eax], al
add byte [eax], al
add ch, bl
fnstenv [esi]
ja 0x49c29
add byte [eax], al
fstp st(1)
ja 0x49c29
pop ebx
aaa
ja 0x49c01
daa
aaa
ja 0x49bed
push ebp
xor eax, 0x36330677
xor esi, dword [esi]
ja 0x49c75
pushal
xor eax, 0x37a80677
ja 0x49c37
test al, 0x37
ja 0x49c9d
inc ecx
xor al, 0x77
or byte [ebp + 0x35], bl
ja 0x49c85
ja 0x49c41
pop ebp
xor eax, 0x35624877
ja 0x49c09
bound esi, qword [0x3554c877]
ja 0x49c9c
push esp
xor eax, 0x3cd15777
ja 0x49be3
sar dword [edi + esi*2], 1
lcall 0x3420, 0x6f7733d5
ja 0x49bf6
aad 0x33
ja 0x49cbc
and byte [edi + esi*2], dh
movsd dword es:[edi], dword [esi]
add al, 0x33
ja 0x49cbd
push ebx
xor eax, 0x35534877
ja 0x49c85
ja 0x49ca1
push ebx
xor eax, 0x35532877
ja 0x49cd5
push ebx
xor eax, 0x36c67477
ja 0x49c6d
invalid
push ebx
xor eax, 0x35541877
ja 0x49c65
ja 0x49c81
push esp
xor eax, 0x3552f877
ja 0x49c59
push edx
xor eax, 0x3552e877
ja 0x49bfd
push edx
xor eax, 0x35538877
ja 0x49c91
push ebx
xor eax, 0x35531877
ja 0x49c81
push ebx
xor eax, 0x32170477
ja 0x49c9e
pop ss
xor dh, byte [edi + 0x1d]
add dword [edi], esi
ja 0x49cfb
add byte [edi], dh
ja 0x49cf1
push 0x35
ja 0x49c67
xor eax, 0x375eda77
pop esi
aaa
ja 0x49c91
add byte [eax], al
add byte [esi + 0x49768d87], ah
inc esp
invalid
and dword [esi + ecx*4 + 0x76], edx
dec esp
push esp
invalid
push esp
invalid
inc ecx
nop
jbe 0x49d37
jp 0x49c99
fisttp dword [esi - 0x6fc4cc8a]
jbe 0x49c8a
invalid
stosb byte es:[edi], al
lea esi, [esi - 0x5b]
sbb dword [esi - 0x71e7668a], ecx
jbe 0x49cb9
sbb byte [esi - 0x7132178a], cl
int 0x8e
jbe 0x49cfe
mov eax, 0x935c768d
lea esi, [esi + 0x74]
enter 0x7691, 0xffffffffffffffab
cmpsd dword [esi], dword es:[edi]
lea esi, [esi - 0x77]
sub dword [esi - 0x7258808a], ecx
jbe 0x49d69
in al, dx
lea esi, [esi - 0x38]
and al, 0x8e
jbe 0x49ccd
aaa
invalid
jbe 0x49d7a
push eax
invalid
jbe 0x49d74
dec ebp
invalid
mov edx, 0xf4768e53
mov dl, 0x8d
jbe 0x49dc7
lea esi, [esi + 0x4a]
arpl word [esi - 0x724cf78a], cx
jbe 0x49dc2
mov dl, 0x8d
jbe 0x49dbd
cmp cl, byte [esi - 0x71aac68a]
jbe 0x49e0c
inc esp
invalid
invalid
aam 0xeb
xchg edx, eax
jbe 0x49e7e
push esi
lea esi, [esi + 0x29]
lea ecx, [ebp - 0x71e43b8a]
in al, dx
mov byte [0xa2997e75], al
jne 0x49e45
jb 0x49e29
jne 0x49e36
jae 0x49e2d
mov gs, word [edi + 0xa2be37a]
sbb eax, 0x9d2dbd3e
xor al, byte [edi]
adc bl, byte [ebx + eax*4]
adc byte [di - 0x38], cl
invalid
ret 0x503b
pop es
cmp ch, byte [edx - 0x64a859e0]
inc eax
ljmp 0x6078
dec edx
xor ecx, ecx
mov dword [edi + 0x20], eax
mov word [edi + 0x28], cx
pop edi
pop esi
dec edi
sub byte [edi + 0x5e], bl
ret
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
ret
call dword [ebp - 0x75]
in al, dx
push ebx
push esi
mov esi, dword [ecx + 4]
mov ax, word [esi]
mov bh, al
push edi
mov edi, edx
mov edx, dword [ebp + 8]
mov bl, ah
lea eax, [esi + 2]
mov word [edx], bx
mov dword [edi], eax
movzx edx, word [edx]
add eax, edx
cmp dword [ecx + 8], eax
pop edi
mov dword [ecx + 4], eax
sbb eax, eax
pop esi
and eax, 0x140d
pop ebx
pop ebp
ret 4