Function at 0x413045
Capabilities:
Encode data using xor

Disassembly:
push 0xac
mov eax, 0x42f36e
call fcn.004198f7
sub esp, 0x18
xor ebx, ebx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x437f86
call fcn.00404293
mov dword [ebp - 4], ebx
mov eax, dword [0x438738]
push 0x38
mov dword [ebp - 0x14], eax
pop esi
cmp byte [0x43873b], bl
je 0x413093
mov ecx, ebx
xor edx, edx
mov eax, ecx
div esi
add dl, 0x31
xor byte [ebp + ecx - 0x14], dl
inc ecx
cmp ecx, 4
jl 0x413080
sub esp, 0x18
lea eax, [ebp - 0x14]
mov ecx, esp
mov dword [ebp - 0x28], esp
push eax
call fcn.00404293
mov byte [ebp - 4], 1
mov eax, dword [0x43940c]
mov dword [ebp - 0x24], eax
mov ax, word [0x439410]
mov word [ebp - 0x20], ax
test ah, ah
je 0x4130d3
mov ecx, ebx
xor edx, edx
mov eax, ecx
div esi
add dl, 0x31
xor byte [ebp + ecx - 0x24], dl
inc ecx
cmp ecx, 6
jl 0x4130c0
sub esp, 0x18
lea eax, [ebp - 0x24]
mov ecx, esp
mov dword [ebp - 0x2c], esp
push eax
call fcn.00404293
sub esp, 0x18
mov byte [ebp - 4], 2
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x4413c0
call fcn.00405a8f
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 3
call fcn.00412eef
mov dword [ebp - 0x14], eax
push 6
pop ecx
mov byte [ebp - 4], 4
lea edi, [ebp - 0x44]
cmp byte [0x439217], 0
mov esi, str.m_ZPDX
rep movsd dword es:[edi], dword [esi]
push 0x38
pop edi
je 0x41313e
mov ecx, ebx
xor edx, edx
mov eax, ecx
div edi
add dl, 0x31
xor byte [ebp + ecx - 0x44], dl
inc ecx
cmp ecx, 0x18
jl 0x413128
mov eax, dword [ebp - 0x14]
sub esp, 0x18
lea ecx, [ebp - 0x44]
mov esi, esp
mov dword [ebp - 0x14], esi
push ecx
mov ecx, eax
call fcn.00404840
push eax
mov ecx, esi
call fcn.0040425a
mov dl, 1
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x5c]
call fcn.00408047
add esp, 0x78
mov ecx, 0x4413c0
push eax
call fcn.00405adb
lea ecx, [ebp - 0x50]
call fcn.00404303
lea ecx, [ebp - 0x5c]
call fcn.0040438d
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x78]
call fcn.004025e6
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x437f86
call fcn.00404293
push 6
pop esi
mov dword [ebp - 4], esi
cmp byte [0x43873b], 0
mov eax, dword [0x438738]
mov dword [ebp - 0x14], eax
je 0x4131cf
mov ecx, ebx
xor edx, edx
mov eax, ecx
div edi
add dl, 0x31
xor byte [ebp + ecx - 0x14], dl
inc ecx
cmp ecx, 4
jl 0x4131bc
sub esp, 0x18
lea eax, [ebp - 0x14]
mov ecx, esp
mov dword [ebp - 0x2c], esp
push eax
call fcn.00404293
mov byte [ebp - 4], 7
mov eax, dword [0x43940c]
mov dword [ebp - 0x1c], eax
mov ax, word [0x439410]
mov word [ebp - 0x18], ax
test ah, ah
je 0x41320e
mov ecx, ebx
xor edx, edx
mov eax, ecx
div edi
add dl, 0x31
xor byte [ebp + ecx - 0x1c], dl
inc ecx
cmp ecx, esi
jl 0x4131fc
sub esp, 0x18
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x28], esp
push eax
call fcn.00404293
sub esp, 0x18
mov byte [ebp - 4], 8
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x4413c0
call fcn.00405a8f
push 0x2a
pop edx
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 9
call fcn.00405d75
push 0xa
pop ecx
mov byte [ebp - 4], 0xa
lea edi, [ebp - 0x88]
mov esi, 0x439438
rep movsd dword es:[edi], dword [esi]
push 0x38
mov ecx, ebx
movsw word es:[edi], word [esi]
pop edi
xor edx, edx
mov eax, ecx
div edi
add dl, 0x31
xor byte [ebp + ecx - 0x88], dl
inc ecx
cmp ecx, 0x2a
jl 0x41325f
sub esp, 0x18
lea eax, [ebp - 0x88]
mov esi, esp
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x14], esi
push eax
call fcn.00404840
push eax
mov ecx, esi
call fcn.0040425a
mov dl, 1
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x5c]
call fcn.00408047
add esp, 0x78
mov esi, 0x4413c0
mov ecx, esi
push eax
call fcn.00405adb
lea ecx, [ebp - 0x50]
call fcn.00404303
lea ecx, [ebp - 0x5c]
call fcn.0040438d
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.004025e6
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x437f86
call fcn.00404293
mov dword [ebp - 4], 0xc
cmp byte [0x43873b], 0
mov eax, dword [0x438738]
mov dword [ebp - 0x14], eax
je 0x41330d
mov ecx, ebx
xor edx, edx
mov eax, ecx
div edi
add dl, 0x31
xor byte [ebp + ecx - 0x14], dl
inc ecx
cmp ecx, 4
jl 0x4132fa
sub esp, 0x18
lea eax, [ebp - 0x14]
mov ecx, esp
mov dword [ebp - 0x2c], esp
push eax
call fcn.00404293
mov byte [ebp - 4], 0xd
mov eax, dword [0x43940c]
mov dword [ebp - 0x1c], eax
mov ax, word [0x439410]
mov word [ebp - 0x18], ax
test ah, ah
je 0x41334d
mov ecx, ebx
xor edx, edx
mov eax, ecx
div edi
add dl, 0x31
xor byte [ebp + ecx - 0x1c], dl
inc ecx
cmp ecx, 6
jl 0x41333a
sub esp, 0x18
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x28], esp
push eax
call fcn.00404293
sub esp, 0x18
mov byte [ebp - 4], 0xe
mov ecx, esp
mov dword [ebp - 0x1c], esp
push esi
call fcn.00405a8f
push 0x26
pop edx
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0xf
call fcn.00405d75
push 0xa
pop ecx
mov byte [ebp - 4], 0x10
lea edi, [ebp - 0x88]
mov esi, 0x439260
rep movsd dword es:[edi], dword [esi]
push 0x38
movsw word es:[edi], word [esi]
pop edi
xor edx, edx
mov eax, ebx
div edi
add dl, 0x31
xor byte [ebp + ebx - 0x88], dl
inc ebx
cmp ebx, 0x2a
jl 0x41339b
sub esp, 0x18
lea eax, [ebp - 0x88]
mov esi, esp
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x14], esi
push eax
call fcn.00404840
push eax
mov ecx, esi
call fcn.0040425a
mov dl, 1
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xa0]
call fcn.00408047
add esp, 0x78
mov ecx, 0x4413c0
push eax
call fcn.00405adb
lea ecx, [ebp - 0x94]
call fcn.00404303
lea ecx, [ebp - 0xa0]
call fcn.0040438d
lea ecx, [ebp - 0xb8]
call fcn.004025e6
call fcn.004198c5
ret