Function at 0x403f1c
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x4c
mov word [0x44e900], 0
mov dword [0x44e910], 0
xor edx, edx
mov ecx, 0x44ca00
push ebp
push edi
push esi
push ebx
mov esi, 0x44c030
mov ebx, 0x44b660
mov eax, dword [esp + 0x60]
mov dword [0x44b640], eax
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov dword [0x44b650], 4
mov eax, 0x273
mov dword [esi + eax*4 - 0x9cc], 1
mov dword [ebx + eax*4 - 0x9cc], eax
mov dword [ecx + eax*4], edx
inc eax
inc edx
cmp edx, 0x139
jle 0x403f65
xor edx, edx
mov ecx, 0x13a
mov edi, 0x44c030
mov ebp, 0x44ca00
mov esi, 0x4e8
mov ebx, 4
nop
mov eax, dword [edi + ebx]
add eax, dword [edi + ebx - 4]
mov dword [edi + esi], eax
mov dword [esi + 0x44b660], edx
mov dword [ebp + ebx], ecx
mov dword [ebp + ebx - 4], ecx
add ebx, 8
add edx, 2
add esi, 4
inc ecx
cmp ecx, 0x272
jle 0x403fa0
mov dword [0x44c9fc], 0xffff
mov dword [esp + 0x4c], 0xfc4
add esp, 0xfffffffc
mov dword [0x44d3c8], 0
mov eax, dword [esp + 0x50]
push eax
push 0x20
push 0x44d8c0
call sub.msvcrt40.dll_memset
mov dword [esp + 0x58], 0
add esp, 0x10
mov edx, dword [esp + 0x44]
cmp dword [esp + 0x48], edx
jge 0x4042fb
mov esi, dword [0x44c028]
cmp esi, 0x272
jg 0x4040df
mov ecx, dword [0x44b640]
mov ebx, dword [0x44e930]
mov ebp, dword [0x44e940]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebp
mov ebx, dword [0x44e910]
cmp ebx, 8
jg 0x4040a9
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov esi, esi
mov eax, dword [0x44b650]
xor edx, edx
mov al, byte [eax + ebp]
xor al, byte [0x44e920]
mov dl, al
mov eax, dword [esp + 0x40]
imul eax, dword [0x44e920]
mov ecx, 8
sub ecx, ebx
inc dword [0x44b650]
shl edx, cl
or word [0x44e900], dx
add eax, edi
mov dword [0x44e920], eax
lea eax, [ebx + 8]
mov dword [0x44e910], eax
mov ebx, eax
cmp ebx, 8
jle 0x404060
xor eax, eax
mov ax, word [0x44e900]
mov dx, word [0x44e900]
add edx, edx
mov word [0x44e900], dx
shr eax, 0xf
add esi, eax
dec dword [0x44e910]
mov esi, dword [esi*4 + 0x44b660]
cmp esi, 0x272
jle 0x404043
add esi, 0xfffffd8d
add esp, 0xfffffff4
push esi
call fcn.00403e44
add esp, 0x10
cmp esi, 0xff
jg 0x404124
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x48]
mov ecx, esi
mov byte [ebp + ebx], cl
mov eax, dword [esp + 0x4c]
inc dword [esp + 0x48]
mov byte [eax + 0x44d8c0], cl
inc eax
and eax, 0xfff
mov dword [esp + 0x4c], eax
jmp 0x4042ed
mov ebx, dword [0x44e910]
add esi, 0xffffff03
mov dword [esp + 0x38], esi
cmp ebx, 8
jg 0x404197
mov edi, dword [0x44b640]
mov ebp, dword [0x44e930]
mov esi, dword [0x44e940]
nop
lea esi, [esi]
mov eax, dword [0x44b650]
xor edx, edx
mov al, byte [eax + edi]
xor al, byte [0x44e920]
mov dl, al
mov eax, ebp
imul eax, dword [0x44e920]
mov ecx, 8
sub ecx, ebx
inc dword [0x44b650]
shl edx, cl
or word [0x44e900], dx
add eax, esi
mov dword [0x44e920], eax
lea eax, [ebx + 8]
mov dword [0x44e910], eax
mov ebx, eax
cmp ebx, 8
jle 0x404150
xor edx, edx
mov dx, word [0x44e900]
shl word [0x44e900], 8
add dword [0x44e910], 0xfffffff8
shr edx, 8
xor ecx, ecx
movzx edi, byte [edx + 0x4354b0]
shl edi, 6
mov cl, byte [edx + 0x4355b0]
add ecx, 0xfffffffd
cmp ecx, 0xffffffff
je 0x404293
mov ebx, dword [0x44b640]
mov ebp, dword [0x44e930]
mov eax, dword [0x44e940]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], eax
lea esi, [esi]
mov ebx, dword [0x44e910]
dec ecx
mov dword [esp + 0x34], ecx
add edx, edx
mov dword [esp + 0x30], edx
cmp ebx, 8
jg 0x40425f
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
mov eax, dword [0x44b650]
xor edx, edx
mov al, byte [eax + ebp]
xor al, byte [0x44e920]
mov dl, al
mov eax, dword [esp + 0x3c]
imul eax, dword [0x44e920]
mov ecx, 8
sub ecx, ebx
inc dword [0x44b650]
shl edx, cl
or word [0x44e900], dx
add eax, esi
mov dword [0x44e920], eax
lea eax, [ebx + 8]
mov dword [0x44e910], eax
mov ebx, eax
cmp ebx, 8
jle 0x404216
xor eax, eax
mov ax, word [0x44e900]
mov cx, word [0x44e900]
mov edx, dword [esp + 0x30]
add ecx, ecx
mov word [0x44e900], cx
mov ecx, dword [esp + 0x34]
dec dword [0x44e910]
shr eax, 0xf
add edx, eax
cmp ecx, 0xffffffff
jne 0x4041f0
mov eax, dword [esp + 0x4c]
and edx, 0x3f
or edi, edx
sub eax, edi
lea edi, [eax - 1]
and edi, 0xfff
xor edx, edx
cmp edx, dword [esp + 0x38]
jge 0x4042ed
mov ecx, 0x44d8c0
mov ebp, dword [esp + 0x64]
lea eax, [edx + edi]
and eax, 0xfff
inc edx
movzx esi, byte [eax + ecx]
mov eax, dword [esp + 0x48]
mov ebx, esi
mov byte [eax + ebp], bl
mov ebp, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x48], eax
mov byte [ebp + ecx], bl
inc dword [esp + 0x4c]
and dword [esp + 0x4c], 0xfff
cmp edx, dword [esp + 0x38]
jl 0x4042b4
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x48], eax
jl 0x404013
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x44]
mov dword [eax], edx
mov eax, dword [0x44e910]
test eax, eax
jge 0x404311
add eax, 7
mov ecx, dword [0x44b650]
sar eax, 3
sub ecx, eax
mov eax, ecx
add eax, 3
and al, 0xfc
mov dword [0x44b650], eax
pop ebx
pop esi
pop edi
pop ebp
add esp, 0x4c
ret