Function at 0x415cf1
Capabilities:
Encode data using xor

Disassembly:
mov ax, word [0x4920ba]
add eax, 0xfffff54a
mov word [0x4920ba], ax
mov eax, dword [0x49734c]
test eax, eax
jne 0x4160b5
mov ax, word [0x49158a]
dec eax
mov word [0x49158a], ax
cwde
or eax, 0x2ac71f46
xor dword [0x488800], eax
mov eax, dword [0x48b28c]
lea ecx, [eax - 1]
mov dword [0x48b28c], ecx
or eax, 0x3bba
mov cx, word [0x4949b4]
and ecx, eax
mov word [0x4949b4], cx
or dword [0x4851a8], 0x8a4a0cf5
add dword [0x48a49c], 0x69c9cdd8
mov eax, dword [0x486920]
lea ecx, [eax + 1]
mov dword [0x486920], ecx
add eax, 0xb1018d8a
cmp eax, 0x3652466e
jl 0x415d7f
mov ax, word [0x4939d2]
push ebp
push ebx
push edi
push esi
sub esp, 0x2a4
sub esp, 8
lea ebp, [esp + 0xc]
mov dword [esp + 4], ebp
call fcn.0041d4b1
add esp, 8
and dword [0x48b71c], 0xeca7a028
push ebp
call fcn.0043d560
add esp, 4
mov esi, eax
mov eax, dword [0x48df10]
lea ecx, [eax - 1]
mov dword [0x48df10], ecx
add eax, 0x8434e84
mov ecx, dword [0x48cf28]
add ecx, 0xdac323e0
mov edx, dword [0x48886c]
sub ecx, edx
cmp eax, ecx
jge 0x415e00
mov eax, dword [0x490578]
imul eax, eax, 0x6190cd37
cmp eax, 0x2a1e9b48
je 0x415e00
mov ax, word [0x490e76]
imul eax, eax, 0xffff9d65
mov word [0x490e76], ax
push 0x430
call dword [0x484b68]
or dword [0x486108], 0xfb7c344e
mov byte [esp + esi + 4], 0
mov eax, dword [0x489700]
inc eax
mov dword [0x489700], eax
cmp eax, 0xa02d08a5
jne 0x415e56
mov eax, dword [0x48fd28]
lea ecx, [eax - 1]
mov dword [0x48fd28], ecx
mov cx, word [0x4962fa]
lea edx, [ecx + 1]
mov word [0x4962fa], dx
movsx ecx, cx
and ecx, eax
and dword [0x48b884], ecx
push dword [0x497368]
push ebp
call fcn.0043d600
add esp, 8
mov ax, word [0x49109a]
add eax, 0x45eb
mov word [0x49109a], ax
mov ebx, 2
push ebx
push 0x599d
call fcn.004020cd
add esp, 8
mov edi, eax
or dword [0x48a5e0], 0xc690069d
push edi
push ebp
call fcn.0043d600
add esp, 8
mov eax, dword [0x48c7d0]
add dword [0x48d368], eax
push edi
push ebx
call fcn.0041c522
add esp, 8
mov eax, dword [0x48d380]
shl eax, 4
xor eax, 0xd1351a25
cmp eax, 0xcc9d26b7
jg 0x415ee2
mov eax, dword [0x48d2ac]
xor eax, 0x323d1dec
mov ecx, dword [0x48f054]
or ecx, eax
mov dword [0x48b62c], ecx
jmp 0x415f10
mov eax, dword [0x48a138]
lea ecx, [eax + 1]
mov dword [0x48a138], ecx
mov cx, word [0x492f4a]
movsx ecx, cx
lea eax, [eax + ecx - 0x4f84f5b9]
mov ecx, dword [0x485780]
imul ecx, eax
mov dword [0x485780], ecx
lea ebx, [esp + 0x164]
push ebx
lea eax, [esp + 8]
push eax
call dword [0x484ac8]
mov edi, eax
mov eax, dword [0x4899c0]
mov ecx, 0xd4efe16c
sub ecx, eax
and ecx, 0x77330030
xor dword [0x48f908], ecx
cmp edi, 0xffffffff
je 0x415ffc
mov ax, word [0x495f5a]
xor eax, 0xacb3
mov word [0x492034], ax
mov ebp, esi
lea esi, [esp + 4]
mov eax, dword [0x48ad68]
imul eax, eax, 0xa8c874b0
xor eax, 0xa6eb13f8
and dword [0x48d7d8], eax
mov byte [esp + ebp + 4], 0
mov eax, dword [0x4866fc]
and eax, 0xcbcd8842
mov cx, word [0x4953d4]
movsx ecx, cx
or ecx, eax
mov eax, dword [0x4860cc]
sub eax, ecx
mov dword [0x4860cc], eax
lea eax, [esp + 0x190]
push eax
push esi
call fcn.0043d600
add esp, 8
mov ax, word [0x493b2a]
cwde
imul eax, eax, 0xaaf47bb4
add dword [0x48ad50], eax
push esi
call dword [0x484ab8]
mov dword [0x48d65c], 0x4721d47a
push ebx
push edi
call dword [0x484ac4]
test eax, eax
jne 0x415f5d
add dword [0x48b558], 0xfefb7f7c
push edi
call dword [0x484ac0]
mov eax, dword [0x48b328]
or eax, 0x32e33367
xor dword [0x48ab90], eax
mov ax, word [0x4912fa]
cwde
not eax
mov ecx, dword [0x48a8b0]
imul eax, eax, 0x79c80815
lea eax, [ecx + eax - 0x52df6c08]
mov dword [0x48a8b0], eax
push 0x160
lea eax, [esp + 8]
push eax
call fcn.00410793
add esp, 8
mov eax, dword [0x48f8ac]
lea ecx, [eax - 1]
mov dword [0x48f8ac], ecx
mov cx, word [0x49170c]
inc ecx
mov word [0x49170c], cx
movsx ecx, cx
xor ecx, 0xd66d3a85
cmp eax, ecx
lea esp, [esp + 0x2a4]
pop esi
pop edi
pop ebx
pop ebp
jl 0x4160b5
mov eax, dword [0x48a92c]
mov cx, word [0x4966ec]
movsx ecx, cx
imul ecx, eax
mov ax, word [0x49363a]
lea edx, [eax - 1]
mov word [0x49363a], dx
cwde
xor eax, ecx
cmp eax, 0x2b350084
jg 0x4160b5
mov eax, dword [0x48aa54]
lea ecx, [eax - 1]
mov dword [0x48aa54], ecx
mov cx, word [0x492e90]
mov edx, 0xffff1352
sub edx, eax
add edx, ecx
mov word [0x492e90], dx
ret