Function at 0x4026f0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov edx, 0xdc38eb76
push ebx
mov ebx, dword [esp + 0x18]
push ebp
push esi
push edi
mov eax, ebx
mov esi, 0xb
mov ecx, dword [eax]
add eax, 4
mov edi, ecx
xor edi, edx
dec esi
mov dword [eax - 4], edi
mov edx, ecx
jne 0x402707
mov edi, dword [ebx + 0x28]
lea esi, [ebx + 0x2c]
push edi
push esi
push ebx
mov dword [esp + 0x30], edi
call fcn.0040fa50
lea eax, [edi + 1]
push eax
call fcn.00445e37
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x402754
mov ecx, dword [0x4595e0]
pop edi
pop esi
pop ebp
mov dword [ecx + 0x140], 1
pop ebx
add esp, 0x10
ret
mov ecx, edi
mov edi, ebp
mov edx, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x28]
mov byte [esi + ebp], 0
call fcn.00402fe0
push ebp
call fcn.00445d4e
mov eax, dword [esi + ebx + 0x2c]
add esi, 0x2c
add esp, 8
add esi, 4
test eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 0
jle 0x40284e
mov edi, dword [esp + 0x28]
lea eax, [esi + 0x44]
cmp eax, edi
ja 0x402852
lea eax, [esi + ebx]
push 0x44
push eax
push ebx
mov dword [esp + 0x1c], eax
call fcn.0040fa50
mov ebp, dword [esi + ebx + 0x40]
add esi, 0x40
add esi, 4
add esp, 0xc
lea eax, [esi + ebp]
cmp eax, edi
mov dword [esp + 0x18], eax
ja 0x40286e
lea ecx, [ebp + 1]
push ecx
call fcn.00445e37
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je 0x402969
mov ecx, ebp
add esi, ebx
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
push ebx
call fcn.0040fa50
mov eax, dword [esp + 0x28]
add esp, 0xc
push ebp
mov byte [eax + ebp], 0
mov ecx, dword [0x459814]
push eax
mov eax, dword [esp + 0x18]
add ecx, 0x48c
push eax
call fcn.00417a70
test eax, eax
je 0x402990
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x40279b
mov edi, dword [esp + 0x28]
mov eax, dword [esi + ebx]
add esi, 4
test eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 0
jle 0x40293b
jmp 0x402888
push 0
push str.Initialize_Error
push 0x454248
call fcn.00439780
add esp, 0xc
jmp 0x402852
mov edi, dword [esp + 0x28]
lea eax, [esi + 0x44]
cmp eax, edi
ja 0x40293b
lea eax, [esi + ebx]
push 0x44
push eax
push ebx
mov dword [esp + 0x1c], eax
call fcn.0040fa50
mov ebp, dword [esi + ebx + 0x40]
add esi, 0x40
add esi, 4
add esp, 0xc
lea eax, [esi + ebp]
cmp eax, edi
mov dword [esp + 0x1c], eax
ja 0x402948
lea ecx, [ebp + 1]
push ecx
call fcn.00445e37
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x402969
mov ecx, ebp
add esi, ebx
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x24]
push ebx
call fcn.0040fa50
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov byte [edi + ebp], 0
mov ecx, dword [0x459814]
push edi
push eax
add ecx, 0x494
call fcn.00416d50
test eax, eax
je 0x402983
push edi
call fcn.00445d4e
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
add esp, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x402884
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret
push 0
push str.Initialize_Error
push 0x454248
call fcn.00439780
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov edx, dword [0x4595e0]
pop edi
pop esi
pop ebp
mov dword [edx + 0x140], 1
xor eax, eax
pop ebx
add esp, 0x10
ret
test edi, edi
je 0x402990
push edi
call fcn.00445d4e
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret