Function at 0x40b524
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [0x48ade8]
imul eax, eax, 0x62fbcf61
mov ecx, dword [0x490968]
lea eax, [eax + ecx - 0x7c08fe24]
mov dword [0x490968], eax
mov eax, dword [0x4912f8]
or eax, 0xffba
mov cx, word [0x488be2]
xor ecx, eax
mov word [0x488be2], cx
and dword [0x48bc04], 0xdeef45d5
mov eax, dword [0x48ae74]
add eax, 0xb99024fb
mov ecx, dword [0x48b0ac]
mov dx, word [0x487410]
dec edx
movsx edx, dx
and ecx, edx
mov word [0x487410], dx
and ecx, 0xd92b28e
cmp eax, ecx
jge 0x40b5b2
mov ax, word [0x488f10]
cwde
shl eax, 5
xor eax, 0xe5620590
mov ecx, dword [0x48c898]
sub ecx, eax
mov dword [0x48c898], ecx
jmp 0x40b5c3
mov ax, word [0x489a94]
xor eax, 0xf6cc
mov word [0x489a94], ax
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov esi, dword [esp + 0x5c]
mov eax, dword [0x48ea0c]
mov ecx, dword [0x48f2b0]
add ecx, eax
mov eax, dword [0x48b764]
lea edx, [eax - 1]
mov dword [0x48b764], edx
mov edx, dword [0x490614]
sar edx, 5
imul edx, edx, 0x29deee0e
lea eax, [edx + eax - 1]
cmp ecx, eax
jge 0x40b609
mov word [0x48a456], 0xcb4a
xor dword [0x48e034], 0x569db9f3
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov ax, word [0x48a904]
and eax, 0x17b2
mov word [0x48a904], ax
mov eax, dword [esi]
and dword [0x490fd8], 0x578253c6
and dword [0x490e04], 0xd275d1aa
mov ebx, edx
shr ebx, 0x15
mov byte [esp], bl
add dword [0x48c9dc], 0x2742fd54
mov ebx, edx
shr ebx, 0xd
mov byte [esp + 1], bl
shrd ecx, edx, 0x1d
mov di, word [0x489b92]
xor edi, 0xa16d
mov word [0x489b92], di
shr edx, 5
mov byte [esp + 2], dl
add dword [0x48d4c0], 0xbdd74f7c
mov byte [esp + 3], cl
lea ecx, [eax*8]
mov dx, word [0x489670]
add edx, 0x707c
mov word [0x489670], dx
mov dx, word [0x488b7c]
add edx, 0x45ae
mov word [0x488b7c], dx
add dword [0x48bd80], 0xee03c798
mov edx, dword [0x48ee44]
cmp edx, 0x645c4710
jl 0x40b6e0
mov edx, dword [0x48e0fc]
imul edx, edx, 0xd8ae7244
mov dword [0x48e0fc], edx
mov edx, eax
shr edx, 0x15
mov byte [esp + 4], dl
mov edx, dword [0x491654]
dec edx
mov dword [0x491654], edx
mov edi, dword [0x48ae28]
sar edi, 8
and edi, edx
or edi, 0x9fc38693
mov dword [0x490778], edi
mov edx, eax
shr edx, 0xd
mov byte [esp + 5], dl
mov edx, dword [0x48bcb0]
lea edi, [edx - 1]
mov dword [0x48bcb0], edi
and edx, 0x62af819
xor dword [0x48ba18], edx
shr eax, 5
mov byte [esp + 6], al
mov eax, dword [0x48d968]
imul eax, eax, 0xb0ba6282
mov dword [0x48d968], eax
mov byte [esp + 7], cl
mov eax, dword [0x48d1e8]
imul eax, eax, 0xa626016f
mov dword [0x48d1e8], eax
xor dword [0x48ff38], 0x2cf964dd
mov eax, dword [0x48e710]
dec dword [0x48de74]
mov eax, dword [0x48c1ac]
mov eax, dword [0x48ed00]
add dword [0x48e8e0], 0x18281cd3
mov eax, dword [esi]
and eax, 0x3f
mov ecx, dword [0x48bee4]
lea edx, [ecx + 1]
mov dword [0x48bee4], edx
mov dx, word [0x4885fa]
dec edx
mov word [0x4885fa], dx
movsx edx, dx
lea ecx, [edx + ecx + 1]
cmp ecx, 0x1dad8d16
jne 0x40b7e0
mov cx, word [0x48808c]
movsx ecx, cx
shr ecx, 6
and ecx, 0x8428
mov edx, dword [0x48bd60]
or edx, ecx
or edx, 0xbf971b45
mov dword [0x48bd60], edx
jmp 0x40b7f4
mov cx, word [0x487708]
and ecx, 0x8914
mov word [0x487708], cx
mov ebx, 0x38
cmp eax, ebx
jb 0x40b802
mov ebx, 0x78
mov edi, dword [esp + 0x60]
sub ebx, eax
xor dword [0x490964], 0x91f09184
lea ebp, [esp + 8]
push 0x40
push 0
push ebp
call fcn.00435650
add esp, 0xc
mov eax, dword [0x48f474]
add eax, 0x231ae23f
xor eax, 0x3efe4a9a
add dword [0x490aec], eax
mov byte [esp + 8], 0x80
mov ax, word [0x489990]
dec eax
mov word [0x489990], ax
cwde
add eax, 0x4b6b11df
and dword [0x48b404], eax
push ebx
push ebp
push esi
call fcn.00409409
add esp, 0xc
mov dword [0x48f8a8], 0xf0b56f0f
lea eax, [esp]
push 8
push eax
push esi
call fcn.00409409
add esp, 0xc
mov dword [0x48d5ac], 0xff7efff9
xor eax, eax
mov cx, word [0x487d6a]
and ecx, 0xfbb1
mov word [0x487d6a], cx
mov ecx, dword [0x48adc0]
shr ecx, 1
mov edx, 0xb1a8fd46
sub edx, ecx
or edx, 0xce64
mov cx, word [0x488940]
add ecx, edx
mov word [0x488940], cx
mov cl, byte [esi + eax*4 + 0xb]
mov byte [edi + eax*4], cl
add dword [0x48b5ac], 0x19241322
mov cl, byte [esi + eax*4 + 0xa]
mov byte [edi + eax*4 + 1], cl
xor dword [0x4907a0], 0x2ea309d8
mov cl, byte [esi + eax*4 + 9]
mov byte [edi + eax*4 + 2], cl
add dword [0x48fd44], 0x1a7189a9
mov cl, byte [esi + eax*4 + 8]
mov byte [edi + eax*4 + 3], cl
mov ecx, dword [0x48f824]
imul ecx, ecx, 0x4e257aba
mov edx, dword [0x48ec98]
lea ebx, [edx - 1]
mov dword [0x48ec98], ebx
sub ecx, edx
mov dword [0x48f8cc], ecx
mov cx, word [0x4882ae]
inc ecx
mov word [0x4882ae], cx
movsx ecx, cx
add dword [0x48feac], ecx
mov cx, word [0x4888c2]
or ecx, 0x7dff
mov word [0x4888c2], cx
inc eax
cmp eax, 8
jne 0x40b886
xor dword [0x48cfd4], 0x9e53e552
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret