Function at 0x41ae80
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 0x38
mov al, byte [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov esi, 0xf2aa1d52
mov byte [esp + 0x33], al
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
mov edx, dword [0x496168]
and edx, 0x25ffd8a5
xor edx, 0x31eb5803
mov edi, dword [0x494ec4]
imul edi, edx
mov dword [0x494ec4], edi
mov bx, word [0x4933a0]
movsx edx, bx
xor edx, 0xb6d6e137
cmp esi, edx
mov dword [esp + 0x18], ecx
jle 0x41aeff
mov eax, dword [0x4967d8]
sar eax, 1
mov ecx, dword [0x4968d8]
add ecx, 0xbc39e234
and eax, ecx
mov ecx, dword [0x4955b8]
and ecx, eax
mov dword [0x4955b8], ecx
mov eax, 0xc1a93164
mov cx, word [0x492584]
mov dx, cx
and edx, 0x40c6
mov cx, dx
mov word [0x492584], cx
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
mov dword [esi + 0x2020], edx
mov edx, dword [0x494c04]
cmp eax, edx
jle 0x41af7e
mov eax, 0xbf0c745a
mov ecx, dword [0x496958]
or ecx, 0x4af7160
cmp eax, ecx
jle 0x41af79
mov eax, dword [0x495244]
mov ecx, eax
inc ecx
mov dword [0x495244], ecx
and eax, 0xe0058069
or eax, 0xc3a7f16
mov ecx, dword [0x494318]
and ecx, eax
mov dword [0x494318], ecx
jmp 0x41af7e
jmp 0x41af83
mov ax, word [0x4927fc]
movsx ecx, ax
xor ecx, 0x765d932f
mov edx, dword [0x494700]
add edx, ecx
mov dword [0x494700], edx
call fcn.0042e550
mov dword [esp + 0x20], eax
mov si, word [0x4931f6]
mov ax, si
inc eax
mov di, ax
mov word [0x4931f6], di
movsx eax, si
mov ecx, dword [0x496990]
imul eax, ecx
imul eax, eax, 0xe91ce57c
mov dword [0x496990], eax
cmp dword [esp + 0x20], 0
setne al
xor al, 0xff
test al, 1
jne 0x41af83
mov eax, 0xd1eabd33
mov ecx, dword [0x49371c]
imul ecx, ecx, 0xe9cb4b5f
mov dword [0x49371c], ecx
mov dword [esp + 0x14], eax
call fcn.0042e550
mov dword [esp + 0x24], eax
mov dx, word [0x493028]
movsx eax, dx
sub eax, 0x83b9a2bf
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x41b062
mov eax, dword [0x494fbc]
or eax, 0xab57c21a
cmp eax, 0xff63a512
je 0x41b05d
mov eax, dword [0x49692c]
mov ecx, eax
dec ecx
mov dword [0x49692c], ecx
mov ecx, dword [0x495bac]
imul eax, ecx
imul eax, eax, 0xc47d799
mov dword [0x495bac], eax
jmp 0x41b062
mov eax, 0xd2160a8
mov cl, byte [esp + 0x33]
mov byte [esp + 0x24], cl
mov edx, dword [0x496264]
xor edx, 0x5900c47c
mov dword [0x495a7c], edx
mov edx, dword [esp + 0x20]
mov esi, esp
mov dword [esi], edx
mov dword [esp + 0x10], eax
call fcn.00406960
mov edx, dword [esp + 0x24]
xor edx, eax
mov dword [esp + 0x24], edx
mov eax, dword [0x493bb0]
and eax, 0x1f49434f
mov dword [0x493bb0], eax
mov eax, dword [0x491bc8]
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x2020]
mov edi, esp
lea ebx, [esp + 0x20]
mov dword [edi + 4], ebx
mov dword [edi], esi
mov dword [edi + 0xc], 0
mov dword [edi + 8], 8
call eax
sub esp, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [0x493cd4]
xor eax, 0xffffffff
mov edx, dword [esp + 0x10]
cmp edx, eax
jg 0x41b108
mov ax, word [0x49208a]
mov cx, ax
xor ecx, 0x1a68
mov ax, cx
mov word [0x49208a], ax
cmp dword [esp + 0x1c], 8
je 0x41b192
mov ax, word [0x492172]
mov cx, ax
imul ecx, ecx, 0xda3fa6be
mov ax, cx
mov word [0x492172], ax
mov ecx, dword [esp + 0x18]
call fcn.0044d7c0
mov ecx, dword [0x49570c]
inc ecx
mov dword [0x49570c], ecx
or ecx, 0xa81405a4
cmp ecx, 0xdbab8f26
jge 0x41b167
mov eax, dword [0x495c60]
and eax, 0xd1fee8c8
mov dword [0x495c60], eax
jmp 0x41b185
mov ax, word [0x49344a]
movsx ecx, ax
or ecx, 0x1902a574
mov edx, dword [0x495804]
imul edx, ecx
mov dword [0x495804], edx
mov dword [esp + 0x34], 0xffffffff
jmp 0x41b2d1
mov eax, dword [0x495708]
shl eax, 3
xor eax, 0x500c1908
mov ecx, dword [0x496080]
imul ecx, eax
mov dword [0x496080], ecx
mov dl, byte [esp + 0x33]
movzx eax, dl
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esp + 0x18]
call fcn.00402df0
sub esp, 4
test al, 1
jne 0x41b20e
mov eax, dword [0x495368]
add eax, 0x67e16701
mov dword [0x495368], eax
mov ecx, dword [esp + 0x18]
call fcn.0044d7c0
mov eax, dword [0x495b9c]
sar eax, 7
xor eax, 0x410cd8cd
mov ecx, dword [0x494f50]
imul ecx, eax
mov dword [0x494f50], ecx
mov dword [esp + 0x34], 0xfffffffe
jmp 0x41b2d1
mov eax, 0xddc96ded
mov ecx, dword [0x495610]
inc ecx
mov dword [0x495610], ecx
sub ecx, 0x812f9c35
cmp eax, ecx
jl 0x41b23d
mov eax, dword [0x49688c]
and eax, 0x422b87ab
mov dword [0x49688c], eax
mov eax, dword [esp + 0x18]
mov dword [eax], 0
mov ecx, dword [0x4948bc]
imul ecx, ecx, 0x7b53d133
mov dword [0x4948bc], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov ecx, dword [0x494b04]
not ecx
or ecx, 0x81b2391e
mov edx, dword [0x493dd0]
xor edx, ecx
mov dword [0x493dd0], edx
mov dword [eax + 0x100c], 0
mov si, word [0x4935b0]
mov cx, si
or ecx, 0x2401
mov si, cx
mov word [0x4935b0], si
mov ecx, dword [eax + 0x201c]
mov edx, dword [esp + 0x20]
mov edi, esp
mov dword [edi], edx
call ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x1010], eax
mov eax, dword [0x4951bc]
and eax, 0xfdbfdf7b
mov dword [0x4951bc], eax
mov dword [esp + 0x34], 1
mov eax, dword [esp + 0x34]
add esp, 0x38
pop esi
pop edi
pop ebx
ret 8