Function at 0x4228c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
movzx eax, word [0x4a6604]
and eax, 0x239053d2
mov word [0x4a6604], ax
push ebx
fld dword [0x4b72fc]
push esi
fld dword [0x4b3728]
push edi
fsub dword [0x4b9d6c]
xor edi, edi
fld dword [0x4b9d6c]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x4b9d6c]
fxch st(2)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x422924
fld dword [0x4a9d48]
fmul qword [0x46ef20]
fadd dword [0x4acc10]
fstp dword [0x4acc10]
jmp 0x42292e
add dword [0x43fef8], 0xbd194f88
fld dword [0x4c34a0]
mov esi, dword [ebp + 0x10]
fld dword [0x4c525c]
or ebx, 0xffffffff
cmp dword [ebp + 8], edi
fadd dword [0x4a8e44]
fsubp st(1)
fstp dword [0x4c34a0]
fld dword [0x4a8e44]
fsub st(1)
fstp dword [0x4a8e44]
jle 0x422b80
fld dword [0x4c5dd0]
fstp dword [0x4b769c]
mov ecx, dword [0x44b8fc]
imul ecx, ecx, 0xa2b3bc49
mov dword [0x44b8fc], ecx
add dword [0x448f34], ebx
mov edx, dword [0x448f34]
mov eax, dword [0x442630]
and edx, eax
cmp edx, 0x7570b3d3
jl 0x4229b2
mov ecx, dword [0x43ff48]
imul ecx, ecx, 0x91dc3935
mov dword [0x43ff48], ecx
jmp 0x4229d5
mov dx, word [0x4a257e]
mov ecx, dword [0x445fb4]
movsx eax, dx
add eax, 0x37b8d25
or ecx, eax
or ecx, 0x9e5c506a
mov dword [0x445fb4], ecx
fld dword [0x4aad60]
mov ebx, dword [ebp + 0xc]
fadd qword [0x47c718]
xor eax, eax
push eax
mov eax, dword [ebp + 0x14]
push eax
fstp dword [0x4aad60]
mov edx, dword [ebx]
push 0
push edx
call fcn.00436780
mov ecx, eax
movzx eax, word [0x4a5a2e]
add ebx, 4
cwde
mov dword [ebp + 0xc], ebx
mov ebx, dword [0x4403a8]
add eax, 0x11ce1cee
imul ebx, eax
mov dword [0x4403a8], ebx
dec word [0x4a5a2e]
movzx eax, word [0x49f65e]
mov ebx, dword [0x44580c]
cwde
imul eax, eax, 0xa219180
shl ebx, 0xa
add eax, 0xd83e405f
or ebx, 0xa76d1d40
cmp ebx, eax
jne 0x422a86
fld dword [0x4b09d8]
fld dword [0x4bdaa8]
fmul qword [0x497c98]
fadd qword [0x46bab0]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x422a86
mov eax, dword [0x44b750]
mov ax, word [0x4a63c0]
or ebx, 0xffffffff
add dword [0x44b750], ebx
jmp 0x422a89
or ebx, 0xffffffff
mov eax, dword [0x450a64]
xor eax, 0x263ec76b
or dword [0x44f588], eax
add dword [0x450a64], ebx
add dword [0x4543a0], 0x28f92e3c
fld dword [0x4b4154]
fsub qword [0x46a7c0]
add ecx, edi
fld dword [0x4c05b8]
cmp ecx, edi
fld dword [0x4c05b8]
sbb edi, edi
fsub st(3)
neg edi
add edi, edx
fstp dword [0x4c05b8]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x422b03
add dword [0x450794], ebx
mov edx, dword [0x450794]
sub edx, 0x2d02b0c4
cmp edx, 0x1fafbc60
jne 0x422b03
add dword [0x44ff78], 0x674800d5
mov ax, word [0x499c76]
add ecx, dword [esi]
cwde
lea edx, [eax*4]
mov eax, dword [0x442744]
sar eax, 1
imul eax, edx
movzx edx, word [0x4a0f16]
sub edx, eax
add edx, 0x690e6019
mov word [0x4a0f16], dx
cmp ecx, dword [esi]
sbb eax, eax
xor dword [0x43d048], 0x84004
neg eax
add edi, eax
mov eax, dword [0x43f348]
not eax
or dword [0x446b78], eax
mov dword [esi], ecx
mov cx, word [0x4a0df0]
movsx eax, cx
and dword [0x43ea2c], eax
mov eax, dword [ebp + 8]
add dword [0x441024], 0x378262d7
dec eax
add esi, 4
mov dword [ebp + 8], eax
test eax, eax
jg 0x422965
movzx edx, word [0x498b42]
fstp st(0)
movsx ecx, dx
movzx edx, word [0x4a5672]
mov eax, 0xc7a73ba6
sub eax, ecx
movsx ecx, dx
xor ecx, eax
or dword [0x4525a0], ecx
inc word [0x4a5672]
inc word [0x498b42]
mov eax, dword [0x456f94]
and eax, 0xfff71eee
shl eax, 0xa
xor dword [0x450604], eax
mov ecx, 0xe3d722e5
jmp 0x422bd0
mov eax, dword [0x4538d0]
mov dword [0x44d558], eax
add dword [esi], edi
add dword [0x440a20], ebx
mov edx, dword [0x440a20]
xor edx, 0xf9759fdf
or edx, 0xf06596cf
mov dword [0x455080], edx
cmp dword [esi], edi
sbb edi, edi
and dword [0x446ac4], ecx
mov eax, dword [0x44e42c]
mov edx, dword [0x43fb48]
shl eax, 9
add eax, 0x46ce1038
imul edx, eax
neg edi
add esi, 4
mov dword [0x43fb48], edx
test edi, edi
jne 0x422bd0
fld dword [0x4aac5c]
fmul dword [0x4ba958]
fld dword [0x4c272c]
fmul dword [0x4b1e54]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x422c82
mov eax, dword [0x445890]
imul eax, eax, 0xdf6f18df
cmp eax, 0x90558a89
je 0x422c8c
mov eax, dword [0x454890]
mov ecx, dword [0x448de4]
add eax, 0xaec94d7b
add ecx, eax
pop edi
mov dword [0x454890], ecx
add dword [0x448de4], ebx
pop esi
pop ebx
pop ebp
ret
add dword [0x44018c], 0x855f7138
pop edi
pop esi
pop ebx
pop ebp
ret