Function at 0x422c50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
fld1
or edx, 0xffffffff
add dword [0x43fc38], edx
mov ecx, dword [0x43fc38]
mov eax, 0xc29eca29
sub eax, ecx
mov ecx, dword [0x43ddac]
or eax, 0x8abf4f01
cmp eax, ecx
jg 0x422c9a
fld dword [0x45584c]
fadd dword [0x45a610]
fstp qword [0x4439e0]
fld dword [0x45a610]
fsub st(1)
fstp dword [0x45a610]
mov eax, dword [0x43f5b0]
mov ecx, dword [0x440448]
xor eax, 0x58d4b4ea
cmp eax, ecx
jl 0x422cce
fld dword [0x4575c8]
fsub dword [0x458164]
fstp dword [0x4575c8]
fsubr dword [0x458164]
fstp dword [0x458164]
jmp 0x422cd0
fstp st(0)
fld dword [0x458f9c]
push ebx
fld qword [0x44c4b0]
push esi
fmul qword [0x44cf08]
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
fsubp st(1)
fmul dword [0x459228]
fstp dword [0x459228]
cmp esi, edi
jne 0x422d4d
and dword [0x43d8e0], 0x9108202
movzx ecx, word [0x4531b4]
mov eax, dword [ebp + 0xc]
imul ecx, ecx, 0xbfcfbed4
mov word [0x4531b4], cx
and dword [0x43d7b4], 0x79a2feda
mov edi, eax
mov eax, dword [0x43b034]
mov ebx, dword [0x43f318]
or eax, 0x36f77179
imul ebx, eax
mov dword [0x43f318], ebx
add dword [0x43b034], edx
mov ecx, esi
jmp 0x422d50
mov ecx, dword [ebp + 0xc]
add dword [0x43e14c], 0x88482051
cmp esi, ecx
je 0x422d70
push ecx
push esi
call fcn.0042fe20
add esp, 8
test eax, eax
jne 0x4230b0
movzx edx, word [0x451f3e]
and edx, 0x9090200a
mov word [0x451f3e], dx
mov ebx, dword [edi + 4]
sub ebx, 1
js 0x422d9f
mov eax, dword [edi + 8]
lea eax, [eax + ebx*4]
cmp dword [eax], 0
jne 0x422d9f
dec ebx
sub eax, 4
test ebx, ebx
jge 0x422d92
mov cx, word [0x4538da]
mov edx, dword [0x43e4e8]
movsx eax, cx
and eax, 0x6aba8ded
imul edx, eax
lea eax, [ebx + 1]
push eax
push esi
mov dword [0x43e4e8], edx
mov dword [ebp + 0xc], eax
call fcn.00416e60
add esp, 8
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x4230b0
add dword [0x440eec], 0x71499b5f
mov cx, word [0x450646]
mov dx, word [0x45348a]
mov edi, dword [edi + 8]
movsx ecx, cx
imul ecx, ecx, 0x210bc5a1
movsx edx, dx
add ecx, edx
mov edx, dword [0x43f49c]
inc word [0x45348a]
add edx, edx
xor edx, 0x20605b2f
cmp edx, ecx
jl 0x422e2e
movzx ecx, word [0x451932]
add ecx, 0x4444918a
mov word [0x451932], cx
mov ecx, dword [esi + 8]
add dword [0x43b470], 0xbdfffdb7
or dword [0x43b6c0], 0x5a99ad3d
xor esi, esi
test ebx, ebx
jl 0x42307a
mov ebx, dword [ebp + 0xc]
mov dword [ebp + 0xc], ebx
jmp 0x422e60
mov edx, dword [0x4406f8]
movzx eax, word [0x4520e0]
sar edx, 3
imul edx, edx, 0xc73edce0
xor eax, edx
mov word [0x4520e0], ax
add dword [ecx], esi
or dword [0x43d004], 0xd96510d0
cmp dword [ecx], esi
mov edx, dword [0x4415e0]
mov eax, dword [0x440a00]
sbb esi, esi
imul edx, eax
mov dword [0x4415e0], edx
mov edx, dword [edi]
add dword [ecx], edx
mov dword [0x43cc64], 0x2006a900
mov eax, dword [ecx]
neg esi
cmp eax, dword [edi]
sbb edx, edx
or dword [0x441e78], 0xdbc22ca7
neg edx
add esi, edx
add edi, 4
add ecx, 4
sub dword [ebp + 0xc], 1
jne 0x422e60
mov eax, dword [ebp + 0x10]
test esi, esi
je 0x42307a
fld1
dec dword [0x43ed10]
mov edx, dword [0x43ed10]
mov edi, dword [ebp + 8]
mov dword [0x43ee80], edx
cmp ebx, dword [edi + 4]
jl 0x42301d
fld dword [0x4549dc]
fmul qword [0x44b798]
fmul dword [0x458e54]
fld dword [0x45a51c]
fsub dword [0x455d20]
fsub dword [0x45a82c]
fld dword [0x45a51c]
fadd st(3)
fstp dword [0x45a51c]
fld dword [0x458e54]
faddp st(3)
fxch st(2)
fstp dword [0x458e54]
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x422f6f
mov ax, word [0x450f92]
mov ecx, dword [0x43d6d8]
mov edx, dword [0x440530]
cwde
sar eax, 0xa
sub ecx, eax
add edx, ecx
mov dword [0x43d6d8], edx
inc dword [0x440530]
lea eax, [ebx + 1]
push eax
push edi
call fcn.00416e60
add esp, 8
test eax, eax
jne 0x4230b0
mov edx, dword [0x440630]
shl edx, 4
mov ecx, 0xbab9fcee
sub ecx, edx
mov dx, word [0x451da2]
movsx edx, dx
and edx, 0x439dbfe2
cmp ecx, edx
jge 0x422fda
fld dword [0x453fe8]
fadd qword [0x44d6c8]
fsub dword [0x455894]
fmul dword [0x45763c]
fstp dword [0x45763c]
fld dword [0x453fe8]
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [0x453fe8]
jmp 0x422fdc
fld1
mov ecx, dword [edi + 8]
mov edx, 1
add dword [0x43c780], edx
add word [0x453212], dx
mov edx, dword [0x43c780]
mov edi, dword [0x43cda8]
and edx, edi
mov di, word [0x453212]
movsx edi, di
xor edi, edx
mov edx, dword [0x43ec20]
imul edx, edi
lea ecx, [ecx + ebx*4]
mov dword [0x43ec20], edx
mov edx, dword [0x43d674]
imul edx, edx, 0x7d0e4f4c
or edx, 0x708e2798
mov dword [0x43c36c], edx
add dword [ecx], esi
movzx edx, word [0x451006]
xor edx, 0xa473512f
mov word [0x451006], dx
cmp dword [ecx], esi
movzx edx, word [0x451578]
sbb esi, esi
and edx, 0xa142434c
neg esi
mov word [0x451578], dx
or dword [0x43b2dc], 0x2b0a1884
inc ebx
test esi, esi
jne 0x422edf
fstp st(0)
mov cx, word [0x45138c]
movsx edx, cx
sar edx, 8
cmp edx, 0x8b9cb381
je 0x4230a6
fld qword [0x44e130]
pop edi
fsub dword [0x45a270]
pop esi
pop ebx
fstp qword [0x44e130]
pop ebp
ret
xor dword [0x4414f8], 0x997fe705
pop edi
pop esi
pop ebx
pop ebp
ret