Function at 0x40cfb4
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x4c
mov esi, dword [esp + 0x60]
mov ax, word [0x48fdee]
cwde
shl eax, 2
mov ecx, dword [0x48c0b0]
and ecx, eax
and ecx, 0x9644e080
mov dword [0x48c0b0], ecx
mov eax, dword [0x4881cc]
imul eax, eax, 0x966b34
xor dword [0x4875c4], eax
add dword [0x4870d8], 0xd1f693d9
mov eax, dword [0x489b4c]
dec eax
mov dword [0x489b4c], eax
mov ecx, dword [0x48c3a8]
and ecx, eax
and ecx, 0x4a000290
mov dword [0x48c3a8], ecx
mov eax, dword [0x4889bc]
shr eax, 8
or eax, 0x90f2
xor eax, 0x6304
mov cx, word [0x49136a]
sub ecx, eax
mov word [0x49136a], cx
mov eax, dword [0x4882ac]
lea ecx, [eax + 1]
mov dword [0x4882ac], ecx
mov ecx, 0x7684c609
sub ecx, eax
xor ecx, 0x93654bdc
mov dword [0x48b520], ecx
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov ax, word [0x48ff2c]
mov eax, dword [0x48d77c]
imul eax, eax, 0xa0d02284
mov dword [0x48d77c], eax
mov eax, dword [esi]
mov edi, dword [0x48c888]
dec edi
mov dword [0x48c888], edi
mov dword [0x488a50], edi
mov edi, dword [0x48ca84]
imul edi, edi, 0x1668210a
mov dword [0x48ca84], edi
mov ebx, edx
shr ebx, 0x15
mov byte [esp + 4], bl
mov edi, dword [0x48cd1c]
lea ebx, [edi - 1]
mov dword [0x48cd1c], ebx
cmp edi, 0x90c4f09d
jne 0x40d108
mov edi, dword [0x488844]
mov ebx, 0x1ca87127
sub ebx, edi
and ebx, 0xcba703ba
mov edi, dword [0x48c98c]
inc edi
mov dword [0x48c98c], edi
and edi, 0x759e4491
mov ebp, dword [0x487e30]
mov dword [esp], ecx
lea ecx, [ebp - 1]
mov dword [0x487e30], ecx
mov ecx, dword [esp]
xor edi, ebp
cmp ebx, edi
jge 0x40d108
mov edi, ecx
mov cx, word [0x48efbe]
mov ecx, edi
shrd ecx, edx, 0x1d
mov ebp, ecx
mov ecx, edx
shr ecx, 0xd
mov byte [esp + 5], cl
mov cx, word [0x4906ae]
lea edi, [ecx + 1]
mov word [0x4906ae], di
movsx ecx, cx
imul ecx, ecx, 0x38595c35
mov edi, dword [0x48c62c]
lea ebx, [edi + 1]
mov dword [0x48c62c], ebx
add edi, ecx
cmp edi, 0x182f82f
jg 0x40d16e
mov cx, word [0x48efd6]
movsx ecx, cx
add ecx, 0x4f33ba85
mov edi, dword [0x488bd0]
xor edi, ecx
xor edi, 0x9685a9ac
mov dword [0x488bd0], edi
shr edx, 5
mov byte [esp + 6], dl
and dword [0x489f9c], 0x7dfb3fff
mov ecx, ebp
mov byte [esp + 7], cl
mov ecx, dword [0x489740]
or ecx, 0xb907
mov dx, word [0x490c84]
xor edx, ecx
mov word [0x490c84], dx
mov ecx, dword [0x48b320]
lea edx, [ecx + 1]
mov dword [0x48b320], edx
or dword [0x489614], ecx
mov ecx, dword [0x488310]
sar ecx, 4
imul ecx, ecx, 0x10bdf997
cmp ecx, 0xf41f8dee
jne 0x40d209
mov cx, word [0x48ea9a]
mov ecx, dword [0x488358]
lea edx, [ecx + 1]
mov dword [0x488358], edx
mov edx, dword [0x4892d8]
and edx, ecx
mov cx, word [0x48e772]
lea edi, [ecx - 1]
mov word [0x48e772], di
movsx ecx, cx
or ecx, edx
or dword [0x487f90], ecx
jmp 0x40d213
add dword [0x48d318], 0xec76fbdc
lea ecx, [eax*8]
dec dword [0x48c2c0]
or dword [0x4899b0], 0x23b8896b
mov edx, eax
shr edx, 0x15
mov byte [esp + 8], dl
mov dx, word [0x48f454]
or edx, 0xddea
mov word [0x48f454], dx
mov edx, eax
shr edx, 0xd
mov byte [esp + 9], dl
mov edx, dword [0x4896ec]
mov edi, 0x130bf455
sub edi, edx
cmp edi, 0xe1bde9ff
jl 0x40d271
add dword [0x487d5c], 0xf6d98d4b
jmp 0x40d283
mov edx, dword [0x489ff0]
imul edx, edx, 0x950b9946
mov dword [0x489ff0], edx
shr eax, 5
mov byte [esp + 0xa], al
or dword [0x48d868], 0xae2c769
mov byte [esp + 0xb], cl
mov eax, dword [0x4886dc]
cmp eax, 0xe55c0359
jne 0x40d2b6
mov ax, word [0x4913a4]
imul eax, eax, 0xffffd113
mov word [0x4913a4], ax
mov eax, dword [0x4897c0]
shr eax, 3
imul eax, eax, 0x49e816a1
mov cx, word [0x490140]
xor ecx, eax
mov word [0x490140], cx
mov eax, dword [0x489864]
add eax, 0xe604
mov word [0x48f25a], ax
mov eax, dword [esi]
and eax, 0x3f
dec dword [0x48dd28]
mov word [0x48f160], 0x7802
mov edi, 0x38
cmp eax, edi
jb 0x40d306
mov edi, 0x78
mov ecx, dword [0x48a98c]
cmp ecx, 0x81b2229c
jl 0x40d348
mov ecx, dword [0x48a908]
sar ecx, 7
mov edx, dword [0x4873f4]
lea ebx, [edx - 1]
mov dword [0x4873f4], ebx
sub ecx, edx
cmp ecx, 0xed4e7157
jne 0x40d342
add dword [0x48ba80], 0x40c5c6b0
jmp 0x40d348
mov ecx, dword [0x48dac8]
sub edi, eax
lea ebx, [esp + 0xc]
push 0x40
push 0
push ebx
call fcn.00436520
add esp, 0xc
mov eax, dword [0x488c64]
sar eax, 6
mov ecx, dword [0x48d050]
imul ecx, eax
cmp ecx, 0x8112b651
jl 0x40d37e
add dword [0x48a390], 0x4d53f76e
mov byte [esp + 0xc], 0x80
mov ax, word [0x49008c]
imul eax, eax, 0x63ef
mov cx, word [0x48e7ea]
or ecx, eax
mov word [0x48e7ea], cx
push edi
push ebx
push esi
call fcn.0042c030
add esp, 0xc
mov eax, dword [0x48dd34]
lea ecx, [eax + 1]
mov dword [0x48dd34], ecx
imul eax, eax, 0xe801dade
and eax, 0x64fecd80
mov ecx, dword [0x4879e8]
not ecx
imul ecx, ecx, 0xf102337c
cmp eax, ecx
jne 0x40d3ea
mov eax, dword [0x48b5b0]
mov cx, word [0x48f480]
or ecx, eax
mov word [0x48f480], cx
mov edi, dword [esp + 0x64]
lea eax, [esp + 4]
push 8
push eax
push esi
call fcn.0042c030
add esp, 0xc
mov ax, word [0x48fd56]
imul eax, eax, 0x68ab
mov word [0x48fd56], ax
xor eax, eax
mov ecx, dword [0x4896b4]
dec ecx
mov dword [0x4896b4], ecx
imul ecx, ecx, 0x9bebd2c9
add dword [0x48d640], ecx
dec dword [0x4897b0]
mov cl, byte [esi + eax*4 + 0xb]
mov byte [edi + eax*4], cl
add dword [0x48c5d8], 0x7bcd2986
mov cl, byte [esi + eax*4 + 0xa]
mov byte [edi + eax*4 + 1], cl
mov ecx, dword [0x48ba60]
lea edx, [ecx - 1]
mov dword [0x48ba60], edx
mov dx, word [0x48f818]
movsx edx, dx
add edx, 0x743ec84d
xor edx, ecx
mov ecx, dword [0x48c708]
imul ecx, edx
mov dword [0x48c708], ecx
mov cl, byte [esi + eax*4 + 9]
mov byte [edi + eax*4 + 2], cl
add dword [0x48c990], 0xac266100
mov cl, byte [esi + eax*4 + 8]
mov byte [edi + eax*4 + 3], cl
mov ecx, dword [0x489cf0]
mov dx, word [0x4908ca]
add edx, ecx
mov word [0x4908ca], dx
mov ecx, dword [0x4895d4]
shl ecx, 3
mov edx, dword [0x48776c]
lea ebx, [edx + 1]
mov dword [0x48776c], ebx
and edx, 0x7904ccdb
or edx, ecx
mov dword [0x488044], edx
mov cx, word [0x4902e0]
imul ecx, ecx, 0xffffadac
mov word [0x4902e0], cx
inc eax
cmp eax, 8
jne 0x40d412
mov eax, dword [0x48d408]
sar eax, 9
xor eax, 0x800a0b04
cmp eax, 0x6ceaceb9
jg 0x40d50c
or dword [0x48ddfc], 0xffd8afcf
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret