Function at 0x40b0b0
Capabilities:
Encode data using xor
Encrypt data using des

Disassembly:
sub esp, 0x448
mov eax, dword [0x47f534]
xor eax, esp
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x44c]
push ebx
push ebp
mov ebp, dword [esp + 0x458]
push esi
mov dword [esp + 0xc], eax
push edi
xor eax, eax
lea esp, [esp]
movzx edx, byte [eax + str.91__]
movzx edx, byte [edx + ecx - 1]
mov byte [esp + eax + 0x14], dl
movzx edx, byte [eax + 0x4809dd]
movzx edx, byte [edx + ecx - 1]
mov byte [esp + eax + 0x15], dl
movzx edx, byte [eax + 0x4809de]
movzx edx, byte [edx + ecx - 1]
mov byte [esp + eax + 0x16], dl
movzx edx, byte [eax + 0x4809df]
movzx edx, byte [edx + ecx - 1]
mov byte [esp + eax + 0x17], dl
add eax, 4
cmp eax, 0x38
jl 0x40b0e0
push 0x1c
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x7c]
push ecx
call fcn.00451660
push 0x1c
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x68]
push eax
call fcn.00451660
add esp, 0x18
xor edi, edi
lea esi, [esp + 0x155]
jmp 0x40b160
movzx edx, byte [edi + 0x480b18]
lea ebx, [esp + 0x74]
call fcn.0040b050
movzx edx, byte [edi + 0x480b18]
lea ebx, [esp + 0x54]
call fcn.0040b050
push 0x1c
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00451660
push 0x1c
mov eax, ebx
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.00451660
add esp, 0x18
xor eax, eax
jmp 0x40b1b0
movzx edx, byte [eax + 0x480a14]
movzx ecx, byte [esp + edx + 0x13]
movzx edx, byte [eax + 0x480a15]
mov byte [esi + eax - 1], cl
movzx ecx, byte [esp + edx + 0x13]
movzx edx, byte [eax + 0x480a16]
mov byte [esi + eax], cl
movzx ecx, byte [esp + edx + 0x13]
movzx edx, byte [eax + 0x480a17]
mov byte [esi + eax + 1], cl
movzx ecx, byte [esp + edx + 0x13]
movzx edx, byte [eax + 0x480a18]
mov byte [esi + eax + 2], cl
movzx ecx, byte [esp + edx + 0x13]
movzx edx, byte [eax + 0x480a19]
mov byte [esi + eax + 3], cl
movzx ecx, byte [esp + edx + 0x13]
mov byte [esi + eax + 4], cl
add eax, 6
cmp eax, 0x30
jl 0x40b1b0
add edi, 1
add esi, 0x30
cmp edi, 0x10
jl 0x40b160
xor eax, eax
jmp 0x40b230
movzx edx, byte [eax + str.:2_]
movzx ecx, byte [edx + ebp - 1]
movzx edx, byte [eax + 0x480a49]
mov byte [esp + eax + 0x14], cl
movzx ecx, byte [edx + ebp - 1]
movzx edx, byte [eax + 0x480a4a]
mov byte [esp + eax + 0x15], cl
movzx ecx, byte [edx + ebp - 1]
movzx edx, byte [eax + 0x480a4b]
mov byte [esp + eax + 0x16], cl
movzx ecx, byte [edx + ebp - 1]
mov byte [esp + eax + 0x17], cl
add eax, 4
cmp eax, 0x40
jl 0x40b230
push 0x20
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.00451660
push 0x20
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0xf8]
push edx
call fcn.00451660
add esp, 0x18
xor edi, edi
mov ebp, 0x2d0
jmp 0x40b2b0
xor eax, eax
movzx ecx, byte [eax + 0x480a88]
movzx edx, byte [esp + ecx + 0x53]
movzx ecx, byte [eax + 0x480a89]
mov byte [esp + eax + 0xb4], dl
movzx edx, byte [esp + ecx + 0x53]
movzx ecx, byte [eax + 0x480a8a]
mov byte [esp + eax + 0xb5], dl
movzx edx, byte [esp + ecx + 0x53]
movzx ecx, byte [eax + 0x480a8b]
mov byte [esp + eax + 0xb6], dl
movzx edx, byte [esp + ecx + 0x53]
movzx ecx, byte [eax + 0x480a8c]
mov byte [esp + eax + 0xb7], dl
movzx edx, byte [esp + ecx + 0x53]
movzx ecx, byte [eax + 0x480a8d]
mov byte [esp + eax + 0xb8], dl
movzx edx, byte [esp + ecx + 0x53]
mov byte [esp + eax + 0xb9], dl
add eax, 6
cmp eax, 0x30
jl 0x40b2b2
xor eax, eax
lea ecx, [esp + edi + 0x155]
jmp 0x40b340
movzx edx, byte [ecx + eax - 1]
xor dl, byte [esp + eax + 0xb4]
add eax, 6
mov byte [esp + eax + 0x11e], dl
movzx edx, byte [ecx + eax - 6]
xor dl, byte [esp + eax + 0xaf]
mov byte [esp + eax + 0x11f], dl
movzx edx, byte [ecx + eax - 5]
xor dl, byte [esp + eax + 0xb0]
mov byte [esp + eax + 0x120], dl
movzx edx, byte [ecx + eax - 4]
xor dl, byte [esp + eax + 0xb1]
mov byte [esp + eax + 0x121], dl
movzx edx, byte [ecx + eax - 3]
xor dl, byte [esp + eax + 0xb2]
mov byte [esp + eax + 0x122], dl
movzx edx, byte [ecx + eax - 2]
xor dl, byte [esp + eax + 0xb3]
cmp eax, 0x30
mov byte [esp + eax + 0x123], dl
jl 0x40b340
push 0x30
lea eax, [esp + 0x128]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00451660
add esp, 0xc
xor esi, esi
lea eax, [esp + 0x14]
jmp 0x40b3e0
movsx edx, byte [eax]
movsx ecx, byte [eax + 5]
movsx ebx, byte [eax + 2]
add edx, edx
or edx, ecx
movsx ecx, byte [eax + 1]
add ecx, ecx
or ecx, ebx
movsx ebx, byte [eax + 3]
add edx, esi
add ecx, ecx
or ecx, ebx
movsx ebx, byte [eax + 4]
shl edx, 4
add ecx, ecx
or ecx, ebx
movzx ecx, byte [edx + ecx + 0x480b28]
mov edx, ecx
shr edx, 3
and dl, 1
mov byte [eax], dl
mov edx, ecx
shr edx, 2
and dl, 1
mov byte [eax + 1], dl
mov edx, ecx
shr edx, 1
and dl, 1
and cl, 1
mov byte [eax + 2], dl
mov byte [eax + 3], cl
add esi, 4
add eax, 6
cmp esi, 0x20
jl 0x40b3e0
xor eax, eax
lea ecx, [esp + 0x15]
lea ebx, [ebx]
movzx edx, byte [ecx - 1]
mov byte [esp + eax*4 + 0x74], dl
movzx edx, byte [ecx]
mov byte [esp + eax*4 + 0x75], dl
movzx edx, byte [ecx + 1]
mov byte [esp + eax*4 + 0x76], dl
movzx edx, byte [ecx + 2]
mov byte [esp + eax*4 + 0x77], dl
add eax, 1
add ecx, 6
cmp eax, 8
jl 0x40b450
xor eax, eax
lea esp, [esp]
movzx ecx, byte [eax + 0x480ab8]
movzx edx, byte [esp + ecx + 0x73]
movzx ecx, byte [eax + 0x480ab9]
mov byte [esp + eax + 0x94], dl
movzx edx, byte [esp + ecx + 0x73]
movzx ecx, byte [eax + 0x480aba]
mov byte [esp + eax + 0x95], dl
movzx edx, byte [esp + ecx + 0x73]
movzx ecx, byte [eax + 0x480abb]
mov byte [esp + eax + 0x96], dl
movzx edx, byte [esp + ecx + 0x73]
mov byte [esp + eax + 0x97], dl
add eax, 4
cmp eax, 0x20
jl 0x40b480
xor eax, eax
jmp 0x40b4e0
movzx ecx, byte [esp + eax + 0x94]
movzx edx, byte [esp + eax + 0xe5]
xor cl, byte [esp + eax + 0xe4]
xor dl, byte [esp + eax + 0x95]
mov byte [esp + eax + 0x104], cl
movzx ecx, byte [esp + eax + 0xe6]
xor cl, byte [esp + eax + 0x96]
mov byte [esp + eax + 0x105], dl
movzx edx, byte [esp + eax + 0xe7]
xor dl, byte [esp + eax + 0x97]
mov byte [esp + eax + 0x106], cl
mov byte [esp + eax + 0x107], dl
add eax, 4
cmp eax, 0x20
jl 0x40b4e0
push 0x20
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0xec]
push ecx
call fcn.00451660
push 0x20
lea edx, [esp + 0x114]
push edx
lea eax, [esp + 0x68]
push eax
call fcn.00451660
sub ebp, 0x30
add esp, 0x18
add edi, 0x30
cmp ebp, 0xffffffd0
jg 0x40b2b0
push 0x20
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00451660
push 0x20
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.00451660
mov eax, dword [esp + 0x28]
mov ecx, 0x480ad8
mov esi, 0x480ad9
mov edi, 0x480ada
mov ebp, 0x480adb
add esp, 0x18
sub ecx, eax
sub esi, eax
sub edi, eax
sub ebp, eax
mov edx, 0x10
jmp 0x40b5d0
movzx ebx, byte [ecx + eax]
movzx ebx, byte [esp + ebx + 0x13]
mov byte [eax], bl
movzx ebx, byte [esi + eax]
movzx ebx, byte [esp + ebx + 0x13]
mov byte [eax + 1], bl
movzx ebx, byte [edi + eax]
movzx ebx, byte [esp + ebx + 0x13]
mov byte [eax + 2], bl
movzx ebx, byte [eax + ebp]
movzx ebx, byte [esp + ebx + 0x13]
mov byte [eax + 3], bl
add eax, 4
sub edx, 1
jne 0x40b5d0
mov ecx, dword [esp + 0x454]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00448f05
add esp, 0x448
ret