Function at 0x493782
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edi, edi
sub esp, 0x30
mov eax, dword [ebp + 0x10]
xor edx, edx
push ebx
mov dword [esp - 0x38], 0x17e05f8
push esi
push edi
mov dword [ebp - 4], edx
xchg ecx, ecx
xor ecx, ecx
mov edx, dword [ebp + 0xc]
xor edi, edi
mov ebp, ebp
mov dword [ebp - 0xc], ecx
mov ebx, 0x3816a01e
add ebx, 0x2dc3669
mov dword [esp - 0x14], 0x18ce8b1
sub ebx, 0x22257394
xor ebx, 0x1a3ee55d
xor ebx, 0xfce807b
xor ebx, 0x6224414
mov dword [esp - 0x14], ecx
xor ebx, 0xb1f43c0
mov dword [ebp - 8], edi
cmp edx, 2
jne 0x49337c
mov ebx, ebx
xor eax, eax
jmp 0x4933be
mov ecx, eax
shr ecx, 2
test edx, edx
jne 0x49338c
xchg ebp, ebp
and ecx, 8
jmp 0x49339f
not ecx
and ecx, ebx
test al, 8
jne 0x49339f
mov dword [esp - 0x38], 0x7de28154
or ecx, 2
mov esi, ecx
or esi, 4
mov dword [esp - 0x18], esi
test byte [ebp + 0x10], 0x10
mov eax, esi
mov dword [ebp - 0x18], esi
mov dword [esp - 0x24], 0x256d8056
cmovne eax, ecx
xor ecx, ecx
mov esi, eax
mov dword [esp - 0x14], 0x77868ad4
mov edx, edi
and esi, ebx
inc esi
mov dword [esp - 0xc], ebx
test al, 2
mov dword [ebp - 0x10], esi
mov esi, dword [ebp + 8]
setne dl
mov esi, esi
inc edx
and eax, 4
mov dword [ebp - 0x20], edx
mov esp, esp
mov edx, edi
mov dword [ebp - 0x18], eax
test esi, esi
je 0x4937a5
mov ebx, ebx
mov edi, edi
mov eax, dword [esi + 4]
dec eax
cmp eax, 6
mov dword [esp - 0x18], edx
ja case.default.0x493409
jmp dword [eax*4 + 0x493815]
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x493433
mov ecx, ecx
cmp dword [esi + 8], eax
jne 0x493426
add ebx, 2
jmp case.default.0x493409
add ebx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0xc], ecx
mov dword [esp - 0x20], ecx
jmp 0x493487
cmp eax, dword [esi + 8]
jne 0x49347e
dec ecx
mov dword [esp - 0x14], esi
mov dword [esi + 0x20], 0x4bec6449
xor dword [esi + 0x20], 0x1a20f141
add dword [esi + 0x20], 0x181b1d2f
mov dword [esp - 0x28], esp
sub dword [esi + 0x20], 0x267f17cc
xor dword [esi + 0x20], 0x43689a6b
inc edx
xchg esp, esp
mov dword [ebp - 0xc], ecx
add edi, ecx
mov dword [ebp - 4], edx
mov dword [esp - 0x34], esi
add ebx, dword [ebp - 0x10]
mov dword [ebp - 8], edi
jmp case.default.0x493409
test eax, eax
je 0x493498
xchg edx, edx
add ebx, dword [ebp - 0x20]
inc edx
add edi, ecx
mov dword [ebp - 8], edi
mov dword [esp - 0x34], 0x689f6f2d
mov dword [ebp - 4], edx
lea ecx, [eax + 1]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x20], ecx
xchg ebp, ebp
mov esi, dword [eax + ecx*4 - 4]
jmp 0x493787
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4934d1
mov edi, edi
cmp dword [esi + 8], eax
jne 0x4934c6
add ebx, 2
mov dword [esp - 0x3c], edx
jmp case.default.0x493409
add ebx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0xc], ecx
xchg edi, edi
jmp 0x4934e3
cmp eax, dword [esi + 8]
je 0x493438
test eax, eax
xchg esp, esp
je 0x4934f4
add ebx, dword [ebp - 0x20]
inc edx
add edi, ecx
mov dword [esp - 0x3c], 0x4b07e6ed
mov dword [ebp - 8], edi
mov dword [ebp - 4], edx
mov ecx, dword [ebp + 8]
lea edi, [eax + eax*2]
mov dword [esp - 0x1c], edi
mov esi, dword [esi + 0xc]
inc eax
mov dword [ecx + 0x20], eax
mov dword [esp - 0x3c], 0x208ee36b
push dword [esi + edi*4]
push dword [esi + edi*4 + 4]
call fcn.004947d0
mov esi, dword [esi + edi*4 + 8]
mov ecx, ecx
xor ecx, ecx
add esp, 8
cmp dword [ebp - 0x18], ecx
mov edx, edx
setne cl
add ecx, 3
add ebx, ecx
add ebx, eax
mov dword [esp - 0x34], ebx
jmp 0x493787
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.004947d0
mov dword [esp - 0xc], 0x2d6f799b
add ebx, 2
add esp, 8
add ebx, eax
mov dword [esp - 0x3c], esp
jmp case.default.0x493409
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dword [ebp - 0x14], eax
mov ebp, ebp
test eax, eax
jg 0x493588
jl 0x493577
mov esp, esp
test ecx, ecx
jae 0x493588
inc ebx
mov dword [esp - 0x20], esi
neg ecx
adc eax, 0
neg eax
mov dword [ebp - 0x14], eax
xchg ecx, ecx
inc ebx
test eax, eax
jl case.default.0x493409
xchg ebx, ebx
jg 0x4935a6
cmp ecx, 0xa
jb case.default.0x493409
mov dword [esp - 0xc], 0x1ade5744
inc ebx
mov eax, ecx
mov dword [ebp - 0x1c], ebx
mov ecx, ecx
mov ebx, 0x4604b2ce
xor ebx, 0x73b966df
sub ebx, 0x1f0be965
mov dword [esp - 0x44], edx
add ebx, 0x29905d61
sub ebx, 0x13607d95
add ebx, 0x35cea952
xor ebx, 0xae7cbf07
xchg esp, esp
mul ebx
mov eax, ecx
lea edi, [ebx - 1]
mov dword [esp - 0x40], 0x13e90d03
mov esi, edx
mul edi
mov edi, eax
mov dword [ebp - 0x24], edx
mov dword [esp - 0x30], 0x12f5d56a
mov eax, dword [ebp - 0x14]
mul ebx
mov ebx, edx
mov ecx, eax
mov edi, edi
mov eax, dword [ebp - 0x14]
mov edx, 0x6d0a212b
sub edx, 0x565973e2
mov dword [esp - 0x40], 0x3df9aa9
sub edx, 0xaa1e8ce
add edx, 0x7205781
sub edx, 0x12ba8c8
xchg edi, edi
add edx, 0x3493fc41
add edx, 0x86355d57
mul edx
add ecx, esi
mov dword [esp - 0x10], ebx
mov dword [ebp - 0x14], eax
adc ebx, 0
add edi, ecx
mov ecx, dword [ebp - 0x24]
mov dword [esp - 0x2c], 0x7fc94df1
adc ecx, 0
xor eax, eax
add ebx, ecx
mov dword [esp - 0x34], ebp
mov ecx, dword [ebp - 0x14]
adc eax, eax
add ecx, ebx
mov dword [esp - 0x20], esi
mov ebx, dword [ebp - 0x1c]
adc edx, eax
shrd ecx, edx, 3
mov ecx, ecx
shr edx, 3
mov dword [ebp - 0x14], edx
test edx, edx
jg 0x4935a6
mov dword [esp - 0xc], edx
jl 0x49369f
cmp ecx, 0xa
jae 0x4935a6
mov dword [esp - 0x24], 0x4a17c35d
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp + 8]
jmp case.default.0x493409
fld qword [esi + 8]
sub esp, 8
mov dword [esp - 0x20], 0x19828f86
fstp qword [esp]
push 0x4018ac
nop
mov dword [esp - 0x1c], ebx
mov dword [esp - 4], 0x47183e57
add dword [esp - 4], 0x906de2c
add dword [esp - 4], 0x222283f3
sub dword [esp - 4], 0xdd37387
mov dword [esp - 0x44], 0x6d081941
add dword [esp - 4], 0x17045bee
xor dword [esp - 4], 0x7b7288dd
sub esp, 4
xchg ebx, ebx
nop
sub esp, 4
mov dword [esp], 0x77b1a361
mov dword [esp - 0x18], ecx
xor dword [esp], 0x42f714d8
xor dword [esp], 0x21227dc8
add dword [esp], 0x82178f8
add dword [esp], 0x2d37f615
mov dword [esp - 0x18], ecx
xor dword [esp], 0x49be397e
call fcn.00492e20
fld qword [esi + 8]
mov dword [esp - 0x34], esi
add esp, 0xc
add ebx, eax
fstp qword [esp]
call fcn.0048c990
xchg esp, esp
fsubr qword [esi + 8]
add esp, 8
fld qword [0x4018b8]
fcompi st(1)
mov dword [esp - 0x1c], 0x42dcaba1
fstp st(0)
jbe case.default.0x493409
add ebx, 2
jmp case.default.0x493409
mov eax, dword [esi + 8]
neg eax
sbb eax, eax
add eax, 5
mov esp, esp
add ebx, eax
jmp case.default.0x493409
add ebx, 4
mov esi, dword [esi]
mov ecx, dword [ebp - 0xc]
mov dword [esp - 0x34], 0x30a87979
mov edx, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov dword [ebp + 8], esi
mov ebx, ebx
test esi, esi
jne 0x4933f8
cmp dword [ebp + 0xc], 0
mov dword [esp - 0x44], esi
jne 0x493802
test byte [ebp + 0x10], 2
pushf
mov dword [esp - 0x1c], 0x6ba18540
mov ecx, 0x1e9680f3
sub ecx, 0x1df27204
xor ecx, 0x26a47baf
xchg edi, edi
sub ecx, 0x11585c62
xor ecx, 0x14a818de
popf
xchg esp, esp
mov eax, dword [ebp + 0x14]
setne cl
inc ecx
xchg esp, esp
add ecx, eax
imul eax, edi
imul ecx, edx
pop edi
mov dword [esp - 0x2c], esp
pop esi
add eax, ebx
add eax, ecx
pop ebx
mov ecx, ecx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, ebx
mov dword [esp - 0xc], 0x2a04062e
pop ebx
mov esp, ebp
pop ebp
ret