Function at 0x40a2b7
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov edx, dword [esp + 0x20]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x1c]
add word [0x44af62], 0xbc0a
mov eax, 0x3c240bf3
or eax, dword [0x44d624]
xor eax, 0x409a0400
add dword [0x44df20], eax
mov eax, dword [0x45542c]
or dword [0x44f0f0], eax
mov eax, dword [0x4550dc]
movzx ecx, word [0x44a518]
and ecx, eax
and ecx, 0x8888
mov word [0x44a518], cx
lea eax, [edx + 4]
push eax
call sub.msvcrt.dll_malloc
add esp, 4
mov ebp, eax
mov dword [esp], ebp
mov ecx, dword [0x455328]
and ecx, dword [0x456a38]
xor dword [0x451910], ecx
add dword [0x4548fc], 0x4010e22c
jmp 0x40a39e
mov ecx, dword [0x451d6c]
lea edx, [ecx + 1]
mov dword [0x451d6c], edx
movzx edx, word [0x4471ce]
dec edx
mov word [0x4471ce], dx
movsx edx, dx
or edx, ecx
imul edx, dword [0x455c34]
mov dword [0x455c34], edx
mov esi, dword [eax - 3]
lea ebp, [eax - 3]
mov eax, dword [0x44fcf8]
mov ecx, 0xed727374
xor eax, ecx
add dword [0x452d1c], eax
mov eax, dword [0x454f88]
add dword [0x450d0c], 0x320f76c3
mov word [0x445726], 0xcba0
movsx eax, word [0x448c94]
and eax, 0xe6c21748
or eax, dword [0x44cea8]
cmp eax, 0x2b7c4401
jg 0x40a3cd
mov eax, dword [0x44f864]
cmp eax, 0x7dad6e40
je 0x40a3cd
xor dword [0x44ce84], 0x310
mov al, byte [esi + 0x43c008]
mov byte [ebp], al
or word [0x44a854], 0x60b0
mov eax, dword [0x459b34]
mov al, byte [eax + esi]
xor byte [ebp], al
add word [0x44618e], 0xd0eb
mov eax, dword [0x4541bc]
inc eax
mov dword [0x4541bc], eax
movzx ecx, word [0x4489ca]
imul ecx, eax
imul eax, ecx, 0x96082b70
mov word [0x4489ca], ax
mov eax, dword [0x450b70]
cmp eax, 0xfd592232
jne 0x40a441
movzx eax, word [0x448816]
not eax
mov ecx, dword [0x44c9e0]
sub eax, ecx
movzx ecx, word [0x44649a]
and ecx, eax
mov word [0x44649a], cx
mov al, byte [esi + 0x43c009]
mov byte [ebp + 1], al
movzx eax, word [0x44b082]
dec eax
mov word [0x44b082], ax
cwde
or dword [0x4503c8], eax
mov eax, dword [0x459b34]
mov al, byte [eax + esi + 1]
xor byte [ebp + 1], al
mov eax, dword [0x4504b8]
mov ecx, 0x2d37935d
add eax, ecx
cmp eax, 0x8c8ce4a2
jl 0x40a488
add dword [0x456e64], 0x2d00c29
mov eax, dword [0x44c56c]
movzx ecx, word [0x449326]
imul ecx, eax
mov word [0x449326], cx
add esi, 2
movzx eax, word [0x44a548]
dec eax
mov word [0x44a548], ax
xor eax, 0x9b2f
add word [0x44588a], ax
movzx ebx, word [ebp]
mov eax, dword [0x44f574]
mov ecx, dword [0x453320]
sar ecx, 2
and ecx, 0x8b1e7fd7
xor ecx, eax
mov eax, dword [0x4597b8]
lea edx, [eax - 1]
mov dword [0x4597b8], edx
xor eax, 0xd40fd374
cmp ecx, eax
jg 0x40a504
mov eax, dword [0x456ee8]
not eax
and eax, 0x6efa7633
imul eax, dword [0x44e314]
mov dword [0x44e314], eax
lea eax, [esi + 0x43c008]
lea edi, [ebx + 3]
push edi
push eax
push ebp
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [0x44d5e0]
inc eax
mov dword [0x44d5e0], eax
or dword [0x44ce04], eax
add dword [0x456ccc], 0xa1e5cd
mov eax, dword [0x44dfcc]
lea ecx, [eax + 1]
mov dword [0x44dfcc], ecx
cmp eax, 0x9e938a20
jl 0x40a552
add dword [0x454dc8], 0x4d019c55
mov ecx, dword [0x459b34]
movsx eax, word [0x446aee]
mov edx, 0x76c6c317
sub edx, eax
mov eax, dword [0x4574fc]
inc eax
mov dword [0x4574fc], eax
xor eax, edx
cmp eax, 0x93d3364b
jne 0x40a58a
inc dword [0x44cf70]
mov dword [0x450884], 0xdac00f15
lea eax, [ebp + ebx + 3]
add ecx, esi
and dword [0x454084], 0xe000661c
mov dl, byte [ecx]
xor byte [ebp], dl
mov edx, dword [0x4587bc]
inc edx
mov dword [0x4587bc], edx
add dword [0x4590a8], edx
inc ebp
inc ecx
dec edi
jne 0x40a590
add dword [0x44dcd4], 0x2b445f9d
mov edx, dword [esp + 4]
sub edx, ebx
je 0x40a648
or dword [0x454a8c], 0x856cbe4a
mov byte [eax], 0
mov ecx, dword [0x454464]
shl ecx, 4
add ecx, 0x75378b3
or ecx, 0x8197c795
cmp ecx, 0xf37efeb7
jb 0x40a61a
mov dword [esp + 4], edx
movzx ecx, word [0x44b2d0]
inc ecx
mov word [0x44b2d0], cx
movsx ecx, cx
and ecx, 0xa3b50ba7
xor dword [0x4572c0], ecx
jmp 0x40a33e
mov dword [esp + 4], edx
mov ecx, dword [0x44daa0]
movzx edx, word [0x446b90]
add edx, 0x6672
or edx, ecx
movzx ecx, word [0x44a6f0]
and ecx, edx
mov word [0x44a6f0], cx
jmp 0x40a33e
movzx eax, word [0x44670e]
mov ecx, dword [0x45876c]
inc ecx
and eax, ecx
mov dword [0x45876c], ecx
and eax, 0xeedd
movzx ecx, word [0x447ef8]
imul ecx, eax
mov word [0x447ef8], cx
mov eax, dword [esp]
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret