Function at 0x440450
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, 0x7077f9de
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov eax, dword [0x4b0614]
xor eax, 0xffffffff
cmp edi, eax
je 0x4404d7
mov ax, word [0x4948ba]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x4948ba], dx
movsx ecx, ax
and ecx, 0x2e7dde41
cmp ecx, 0x9e7200c
jge 0x4404d2
mov eax, dword [0x4acac4]
sar eax, 0xa
add eax, 0x2f5b576f
mov ecx, dword [0x4a4120]
imul ecx, eax
mov dword [0x4a4120], ecx
jmp 0x4404d7
mov eax, 0x3d919b8
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov ecx, dword [0x4adccc]
mov edx, dword [0x4adcc0]
dec edx
mov dword [0x4adcc0], edx
or ecx, edx
cmp eax, ecx
jne 0x44051d
mov eax, dword [0x4a9084]
and eax, 0x34ff3cae
mov dword [0x4a9084], eax
jmp 0x440527
mov dword [0x4ad0dc], 0x443c5b06
mov eax, dword [0x4ab4ac]
and eax, 0x28cd027f
mov dword [0x4ab4ac], eax
cmp dword [esp + 0x2c], 0
jle 0x4407d7
mov eax, 0x2a800810
mov ecx, dword [0x4ad790]
imul ecx, ecx, 0xccefdfff
mov dword [0x4ad790], ecx
mov ecx, dword [0x49c268]
add ecx, 0xc886fd78
mov dword [0x49c268], ecx
mov ecx, dword [0x4a3d74]
mov edx, ecx
inc edx
mov dword [0x4a3d74], edx
add ecx, 0x1b0ed497
mov si, cx
mov word [0x49ab46], si
mov ecx, dword [0x4acf34]
add ecx, 0xd4e358ba
mov dword [0x4acf34], ecx
mov ecx, dword [esp + 0x30]
mov edx, ecx
add edx, 4
mov dword [esp + 0x30], edx
mov ecx, dword [ecx]
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov eax, ecx
mul edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov eax, dword [0x4aa958]
imul eax, eax, 0x278745e0
and eax, 0x1a20
mov si, word [0x49448e]
mov cx, si
or ecx, eax
mov si, cx
mov word [0x49448e], si
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov si, word [0x4989bc]
mov ax, si
imul eax, eax, 0xae45a121
mov si, ax
mov word [0x4989bc], si
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov si, word [0x4967a6]
movsx eax, si
sar eax, 3
mov si, word [0x49b20c]
movsx ecx, si
xor ecx, 0xffffffff
and eax, ecx
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jl 0x44065a
mov ax, word [0x4938ba]
movsx ecx, ax
add ecx, 0x8df09238
xor ecx, 0x61015108
mov edx, dword [0x4a6088]
imul edx, ecx
mov dword [0x4a6088], edx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [0x4a3ca0]
xor eax, 0xffffffff
or eax, 0x977e71b8
cmp eax, 0x3c008025
jle 0x4406e4
mov eax, 0xd90e78bf
mov cx, word [0x4944fa]
movsx edx, cx
and edx, 0x9dca572b
cmp eax, edx
jle 0x4406bb
mov eax, dword [0x4a1270]
xor eax, 0xc684b10e
mov ecx, dword [0x4a4078]
imul ecx, eax
mov dword [0x4a4078], ecx
jmp 0x4406df
mov ax, word [0x492e04]
movsx ecx, ax
cmp ecx, 0xe72ff454
jl 0x4406d5
jmp 0x4406da
jmp 0x4406da
jmp 0x4406df
jmp 0x4406e4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
sub eax, ecx
mov ecx, dword [esp + 0x10]
adc ecx, 0
mov dword [esp + 0x10], ecx
mov dx, word [0x4986ac]
movsx ecx, dx
shl ecx, 6
mov esi, dword [0x4a0d68]
mov edi, esi
inc edi
mov dword [0x4a0d68], edi
add ecx, esi
or ecx, 0x3468ec8e
mov esi, dword [0x4a6200]
add esi, ecx
mov dword [0x4a6200], esi
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x14]
add esi, ecx
mov dword [esp + 0x14], esi
mov ecx, dword [0x4af868]
and ecx, 0xfffdbbff
mov dword [0x4af868], ecx
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
mov esi, dword [esi]
sub ecx, esi
mov esi, dword [esp + 0x10]
adc esi, 0
mov dword [esp + 0x10], esi
mov esi, dword [0x4ae314]
add esi, 0xb32b8a0c
mov dword [0x4ae314], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x28], esi
mov dword [0x4a3854], 0x22ff81ce
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x34]
mov ebx, edi
add ebx, 4
mov dword [esp + 0x34], ebx
mov dword [edi], esi
mov esi, dword [0x4ab8f0]
imul esi, esi, 0xf43ae1b1
mov dword [0x4ab8f0], esi
mov esi, dword [0x4a7d80]
add esi, 0x596b2bec
mov dword [0x4a7d80], esi
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x2c]
add eax, 0xffffffff
mov dword [esp + 0x2c], eax
jmp 0x440536
mov eax, 0x20c602c
mov ecx, dword [0x4a7d34]
dec ecx
mov dword [0x4a7d34], ecx
cmp eax, ecx
jge 0x440800
mov eax, dword [0x49c3d0]
or eax, 0x4890500
mov dword [0x49c3d0], eax
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [0x4aee2c]
mov ecx, eax
dec ecx
mov dword [0x4aee2c], ecx
add eax, 0xc23e1d06
and eax, 0xb1bc2c1b
mov ecx, dword [0x4a4f68]
xor ecx, eax
mov dword [0x4a4f68], ecx
mov word [0x49b3fc], 0xbfdb
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
add edx, eax
mov dword [ecx], edx
mov eax, dword [0x49c328]
or eax, 0xe2c1db61
mov dword [0x49c328], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
sub eax, ecx
sbb ecx, ecx
and ecx, 1
mov dword [esp + 0x28], ecx
mov si, word [0x496300]
movsx ecx, si
not ecx
or ecx, 0xdd8392f7
mov edx, dword [0x4a9bc4]
and edx, ecx
mov dword [0x4a9bc4], edx
mov ecx, dword [esp + 0x34]
add ecx, 4
mov dword [esp + 0x34], ecx
mov ecx, dword [0x4afabc]
xor ecx, 0x88006241
mov dword [0x4afabc], ecx
mov dword [esp], eax
cmp dword [esp + 0x28], 0
jne 0x44082f
mov eax, dword [0x4a20c8]
mov ecx, eax
dec ecx
mov dword [0x4a20c8], ecx
add eax, 0xc7686dea
mov dword [0x4a1e24], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret