Function at 0x49900c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov dword [esp - 0x3c], esp
mov eax, dword [ebp + 0x10]
xor edx, edx
push ebx
push esi
mov dword [esp - 0x18], 0x1f5b2cf0
push edi
mov dword [ebp - 4], edx
xor ecx, ecx
mov dword [esp - 0x3c], 0x5aa3475b
mov edx, dword [ebp + 0xc]
xor edi, edi
mov dword [ebp - 0xc], ecx
mov ebx, 0x49fc6078
mov ebp, ebp
add ebx, 0x32ac300f
xor ebx, 0x21b5b1e8
xor ebx, 0x1e413ed6
xchg ebp, ebp
sub ebx, 0x435c1fb8
mov dword [ebp - 8], edi
cmp edx, 2
jne 0x498c20
mov dword [esp - 0x38], edi
xor eax, eax
jmp 0x498c5c
mov ecx, eax
shr ecx, 2
xchg edx, edx
test edx, edx
jne 0x498c32
and ecx, 8
mov ebp, ebp
jmp 0x498c45
not ecx
and ecx, ebx
test al, 8
jne 0x498c45
mov dword [esp - 0x34], 0x32c1cd9c
or ecx, 2
mov esi, ecx
or esi, 4
xchg esi, esi
test byte [ebp + 0x10], 0x10
mov eax, esi
mov dword [ebp - 0x18], esi
xchg ecx, ecx
cmovne eax, ecx
xor ecx, ecx
mov esi, eax
mov dword [esp - 0x3c], esp
mov edx, edi
and esi, ebx
inc esi
mov dword [esp - 0x44], edx
test al, 2
mov dword [ebp - 0x10], esi
mov esi, dword [ebp + 8]
mov dword [esp - 0x44], 0xbcf3b05
setne dl
inc edx
and eax, 4
mov dword [ebp - 0x20], edx
mov ecx, ecx
mov edx, edi
mov dword [ebp - 0x18], eax
test esi, esi
mov ebx, ebx
je 0x49902f
mov edi, edi
mov eax, dword [esi + 4]
dec eax
mov dword [esp - 0x30], 0x434f03e3
cmp eax, 6
ja case.default.0x498cad
jmp dword [eax*4 + 0x4990a5]
mov eax, dword [esi + 0x20]
test eax, eax
xchg ecx, ecx
jne 0x498cdb
cmp dword [esi + 8], eax
jne 0x498cce
mov dword [esp - 0x28], ecx
add ebx, 2
jmp case.default.0x498cad
add ebx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0xc], ecx
mov dword [esp - 0x40], esp
jmp 0x498d3b
cmp eax, dword [esi + 8]
jne 0x498d32
dec ecx
mov dword [esi + 0x20], 0x3ff05960
mov dword [esp - 0x24], ebp
xor dword [esi + 0x20], 0x701c5ac9
sub dword [esi + 0x20], 0x3e3a5139
add dword [esi + 0x20], 0x5f259246
mov edi, edi
sub dword [esi + 0x20], 0x6c228eca
xor dword [esi + 0x20], 0x742bde7e
sub dword [esi + 0x20], 0x709f6b92
mov esp, esp
inc edx
mov dword [ebp - 0xc], ecx
add edi, ecx
mov dword [ebp - 4], edx
mov dword [esp - 0x28], esp
add ebx, dword [ebp - 0x10]
mov dword [ebp - 8], edi
jmp case.default.0x498cad
test eax, eax
je 0x498d46
add ebx, dword [ebp - 0x20]
xchg esi, esi
inc edx
add edi, ecx
mov dword [ebp - 8], edi
mov dword [ebp - 4], edx
xchg ebp, ebp
lea ecx, [eax + 1]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x20], ecx
mov dword [esp - 0x20], 0x5f1ae200
mov esi, dword [eax + ecx*4 - 4]
jmp 0x499011
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x498d81
cmp dword [esi + 8], eax
xchg ecx, ecx
jne 0x498d76
add ebx, 2
jmp case.default.0x498cad
add ebx, dword [ebp - 0x10]
inc ecx
xchg ebx, ebx
mov dword [ebp - 0xc], ecx
jmp 0x498d95
cmp eax, dword [esi + 8]
je 0x498ce0
xchg edi, edi
test eax, eax
je 0x498da6
add ebx, dword [ebp - 0x20]
xchg ecx, ecx
inc edx
add edi, ecx
mov dword [ebp - 8], edi
mov dword [esp - 0x28], 0xb571b4
mov dword [ebp - 4], edx
mov ecx, dword [ebp + 8]
lea edi, [eax + eax*2]
mov dword [esp - 0x3c], ebp
mov esi, dword [esi + 0xc]
inc eax
mov dword [ecx + 0x20], eax
mov dword [esp - 0x38], esi
push dword [esi + edi*4]
push dword [esi + edi*4 + 4]
call fcn.0049a060
mov esi, dword [esi + edi*4 + 8]
mov edx, edx
xor ecx, ecx
add esp, 8
cmp dword [ebp - 0x18], ecx
setne cl
mov esi, esi
add ecx, 3
add ebx, ecx
add ebx, eax
mov edi, edi
jmp 0x499011
push dword [esi + 0xc]
push dword [esi + 8]
xchg edi, edi
call fcn.0049a060
add ebx, 2
add esp, 8
mov dword [esp - 0x44], 0x5b57325c
add ebx, eax
jmp case.default.0x498cad
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dword [ebp - 0x14], eax
test eax, eax
xchg ebp, ebp
jg 0x498e2e
jl 0x498e21
test ecx, ecx
jae 0x498e2e
xchg esi, esi
inc ebx
neg ecx
adc eax, 0
mov ebx, ebx
neg eax
mov dword [ebp - 0x14], eax
inc ebx
test eax, eax
xchg esi, esi
jl case.default.0x498cad
jg 0x498e48
cmp ecx, 0xa
jb case.default.0x498cad
mov dword [esp - 0x1c], esp
inc ebx
mov eax, ecx
mov dword [ebp - 0x1c], ebx
mov dword [esp - 0x18], 0x45a16111
mov ebx, 0x1ae9463c
add ebx, 0xff982fb
xor ebx, 0x79156299
mov dword [esp - 0x30], 0x7e0c049f
add ebx, 0x681b4cf
xor ebx, 0x286dabcf
xor ebx, 0xbed8077f
mov dword [esp - 0x1c], 0x71df2bdc
mul ebx
mov eax, ecx
lea edi, [ebx - 1]
mov esi, esi
mov esi, edx
mul edi
mov edi, eax
mov dword [ebp - 0x24], edx
xchg ebp, ebp
mov eax, dword [ebp - 0x14]
mul ebx
mov ebx, edx
mov dword [esp - 0x14], ecx
mov ecx, eax
mov eax, dword [ebp - 0x14]
mov edx, 0x543d802f
xchg edi, edi
xor edx, 0x1109778
xor edx, 0x7995b39b
sub edx, 0x14c3153d
sub edx, 0x31d9023
xchg edx, edx
add edx, 0x4e913f7a
xor edx, 0xafa5f22a
mul edx
add ecx, esi
mov esi, esi
mov dword [ebp - 0x14], eax
adc ebx, 0
add edi, ecx
mov ecx, dword [ebp - 0x24]
mov dword [esp - 0x10], edi
adc ecx, 0
xor eax, eax
add ebx, ecx
mov ecx, dword [ebp - 0x14]
mov dword [esp - 0x14], 0x3caf020e
adc eax, eax
add ecx, ebx
mov ebx, dword [ebp - 0x1c]
mov dword [esp - 0x18], ebx
adc edx, eax
shrd ecx, edx, 3
shr edx, 3
mov dword [ebp - 0x14], edx
xchg esp, esp
test edx, edx
jg 0x498e48
jl 0x498f2f
cmp ecx, 0xa
xchg esp, esp
jae 0x498e48
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp + 8]
jmp case.default.0x498cad
fld qword [esi + 8]
sub esp, 8
mov esi, esi
fstp qword [esp]
push 0x4018c0
nop
sub esp, 4
mov edi, edi
mov dword [esp], 0x6155c97d
sub dword [esp], 0x3e0d939d
add dword [esp], 0x406ffb51
sub dword [esp], 0x1e9c6e86
mov dword [esp - 0x20], edx
add dword [esp], 0xbe6b173
sub dword [esp], 0x5102741e
nop
mov dword [esp - 4], 0x305bccfe
mov dword [esp - 0x14], 0x14729f45
add dword [esp - 4], 0x1f00fade
sub dword [esp - 4], 0x22338b65
sub dword [esp - 4], 0x22e233e5
mov dword [esp - 0x10], ebx
sub dword [esp - 4], 0x709fc6b
sub dword [esp - 4], 0x33d0c27
sub esp, 4
mov dword [esp - 0x24], ebx
call fcn.004986b0
fld qword [esi + 8]
add esp, 0xc
add ebx, eax
xchg ecx, ecx
fstp qword [esp]
call fcn.00491f60
fsubr qword [esi + 8]
mov dword [esp - 0x20], 0x433e70bc
add esp, 8
fld qword [0x4018d0]
fcompi st(1)
fstp st(0)
mov dword [esp - 0x18], esp
jbe case.default.0x498cad
add ebx, 2
jmp case.default.0x498cad
mov eax, dword [esi + 8]
neg eax
sbb eax, eax
add eax, 5
xchg ebx, ebx
add ebx, eax
jmp case.default.0x498cad
add ebx, 4
mov esi, dword [esi]
mov ecx, dword [ebp - 0xc]
mov dword [esp - 0x40], 0x64d41ec7
mov edx, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov dword [ebp + 8], esi
test esi, esi
xchg ebx, ebx
jne 0x498c98
cmp dword [ebp + 0xc], 0
jne 0x499096
mov dword [esp - 0xc], 0x78e733a5
test byte [ebp + 0x10], 2
pushf
mov ecx, 0x260f3182
mov dword [esp - 0xc], 0x7c93e42f
add ecx, 0x36e5dd17
add ecx, 0x214439f1
sub ecx, 0x67cb1163
mov dword [esp - 0x10], 0x24376a7a
sub ecx, 0x166e3727
popf
mov eax, dword [ebp + 0x14]
setne cl
xchg edx, edx
inc ecx
add ecx, eax
imul eax, edi
mov ebx, ebx
imul ecx, edx
pop edi
pop esi
mov edx, edx
add eax, ebx
add eax, ecx
pop ebx
mov esp, ebp
mov dword [esp - 0x14], ecx
pop ebp
ret
pop edi
pop esi
mov eax, ebx
pop ebx
mov dword [esp - 0x38], edi
mov esp, ebp
pop ebp
ret