Function at 0x40ff40
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x18
mov eax, dword [0x460700]
xor eax, esp
mov dword [esp + 0x10], eax
push ebp
push esi
mov esi, ecx
push edi
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0xffffffff
test esi, esi
jne 0x40ff79
xor eax, eax
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x10]
xor ecx, esp
call fcn.004347a8
add esp, 0x18
ret
push ebx
call fcn.00410200
xor ecx, ecx
lea edi, [ebx + 0x14]
lea ebp, [ecx + 3]
xor edx, edx
mov eax, ecx
div esi
inc ecx
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xf], al
xor edx, edx
mov eax, ecx
div esi
inc ecx
mov eax, ecx
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xe], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xd], al
xor edx, edx
mov eax, ecx
div esi
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xc], dl
mov eax, dword [esp + 0xc]
xor dword [edi - 4], eax
xor edx, edx
mov eax, ecx
div esi
inc ecx
mov eax, ecx
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xf], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xe], al
xor edx, edx
mov eax, ecx
div esi
inc ecx
mov eax, ecx
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xd], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xc], al
mov edx, dword [esp + 0xc]
xor dword [edi], edx
xor edx, edx
mov eax, ecx
div esi
inc ecx
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xf], al
xor edx, edx
mov eax, ecx
div esi
inc ecx
mov eax, ecx
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xe], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xd], al
xor edx, edx
mov eax, ecx
div esi
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xc], dl
mov eax, dword [esp + 0xc]
xor dword [edi + 4], eax
mov eax, ecx
xor edx, edx
div esi
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xf], dl
xor edx, edx
inc ecx
mov eax, ecx
div esi
inc ecx
add edi, 0x18
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xe], al
xor edx, edx
mov eax, ecx
div esi
inc ecx
mov eax, ecx
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xd], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xc], al
mov edx, dword [esp + 0xc]
xor dword [edi - 0x10], edx
xor edx, edx
mov eax, ecx
div esi
inc ecx
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xf], al
xor edx, edx
mov eax, ecx
div esi
inc ecx
mov eax, ecx
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xe], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xd], al
xor edx, edx
mov eax, ecx
div esi
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xc], dl
mov eax, dword [esp + 0xc]
xor dword [edi - 0xc], eax
xor edx, edx
mov eax, ecx
div esi
inc ecx
mov eax, ecx
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xf], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xe], al
xor edx, edx
mov eax, ecx
div esi
inc ecx
mov eax, ecx
inc ecx
movzx edx, byte [edx + 0x455440]
mov byte [esp + 0xd], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x455440]
mov byte [esp + 0xc], al
mov edx, dword [esp + 0xc]
xor dword [edi - 8], edx
sub ebp, 1
jne 0x40ff87
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
lea edi, [ebx + 0x14]
lea ebp, [eax + 9]
lea esp, [esp]
lea esi, [esp + 0x10]
mov eax, ebx
call fcn.0040a4f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [edi - 4], eax
mov dword [edi], ecx
add edi, 8
sub ebp, 1
jne 0x410180
lea edi, [ebx + 0x5c]
mov dword [esp + 0xc], 4
jmp 0x4101b0
mov ebp, 0x80
lea esi, [esp + 0x10]
mov eax, ebx
call fcn.0040a4f0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [edi - 4], edx
mov dword [edi], eax
add edi, 8
sub ebp, 1
jne 0x4101b5
sub dword [esp + 0xc], 1
jne 0x4101b0
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov eax, 1
xor ecx, esp
mov dword [ebx + 0xc], eax
call fcn.004347a8
add esp, 0x18
ret