Function at 0x445d5f
Capabilities:
Encode data using xor

Disassembly:
push 0x114
mov eax, 0x46de7e
call fcn.0046bbe6
movaps xmm0, xmmword [str._v3__48_3_ve846_w]
mov al, 0x57
and dword [ebp - 0x108], 0
movups xmmword [ebp - 0x6c], xmm0
movsx ecx, al
movaps xmm0, xmmword [str.8_602_v_2_2_35_v]
mov byte [ebp - 0x94], al
movups xmmword [ebp - 0x5c], xmm0
call fcn.0043cfd7
mov dword [ebp - 0xf8], eax
xor edx, edx
push edx
lea ecx, [ebp - 0xf8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x90], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445da3
push 0x1f
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x94]
mov dword [ebp - 0x70], eax
call fcn.0043cfd7
mov dword [ebp - 0xf8], eax
xor edx, edx
push edx
lea ecx, [ebp - 0xf8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x90], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445de6
push dword [0x487200]
lea eax, [ebp - 0x90]
push eax
push dword [ebp - 0x70]
call fcn.0043d3a9
test eax, eax
je 0x445e2e
mov dl, byte [ebp - 0x94]
xor ecx, ecx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0x1f
jb 0x445e21
mov byte [eax + 0x1f], 0
push eax
mov edx, 0x485af8
lea ecx, [ebp - 0xac]
call fcn.0044bd40
and dword [ebp - 4], 0
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x48]
call fcn.0044c02b
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 1
call fcn.0043e4dc
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0
mov bl, al
call fcn.0044b6d9
test bl, bl
je 0x4460fb
mov al, 0x45
mov dword [ebp - 0x58], 0x26362c01
xor ebx, ebx
movsx ecx, al
mov byte [ebp - 0x80], al
mov dword [ebp - 0x54], 0x1921372a
mov byte [ebp - 0x50], bl
call fcn.0043cfd7
mov dword [ebp - 0xf8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0xf8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x7c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445e9c
push 8
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x80]
mov dword [ebp - 0x5c], eax
call fcn.0043cfd7
mov dword [ebp - 0xf8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0xf8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x7c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445ed6
push dword [0x487200]
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x5c]
call fcn.0043d3a9
test eax, eax
jne 0x445f07
mov eax, ebx
jmp 0x445f18
mov dl, byte [ebp - 0x80]
mov ecx, ebx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 8
jb 0x445f0c
mov byte [eax + 8], bl
mov dword [ebp - 0x30], ebx
lea ecx, [ebp - 0x30]
push eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], bl
call fcn.0044b945
push ecx
lea eax, [ebp - 0xac]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x48]
call fcn.0044c02b
push ecx
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x110]
call fcn.0043e195
lea ecx, [ebp - 0x48]
call fcn.0044b6d9
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x104]
call fcn.0044070c
mov edi, dword [ebp - 0x104]
mov esi, dword [ebp - 0x100]
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0xf8], esi
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x11c]
call fcn.0044070c
mov ecx, dword [ebp - 0x118]
xorps xmm0, xmm0
movlpd qword [ebp - 0x104], xmm0
mov eax, ebx
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], ebx
test ecx, ecx
je 0x445fc7
call fcn.0042a587
mov eax, ebx
mov byte [ebp - 4], 8
cmp edi, eax
je 0x4460bd
lea eax, [ebp - 0xf4]
mov byte [ebp - 4], 9
push eax
lea ecx, [edi + 0x20]
call fcn.0043d8ed
mov esi, eax
mov byte [ebp - 4], 0xa
cmp dword [esi + 0x14], 0x10
jb 0x445ff4
mov esi, dword [esi]
lea eax, [ebp - 0xdc]
push eax
lea ecx, [edi + 0x20]
call fcn.0043d919
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0xb
push ecx
mov ecx, eax
call fcn.0043d8ed
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x30]
cmp dword [ebp - 0x1c], 0x10
push dword [ebp - 0x20]
cmovae ecx, dword [ebp - 0x30]
push ecx
push ecx
mov ecx, eax
call fcn.0044cd42
push eax
lea ecx, [ebp - 0x48]
call fcn.0044b4e8
or dword [ebp - 0x108], 1
mov byte [ebp - 4], 0xd
lea edx, [ebp - 0x48]
cmp dword [ebp - 0x34], 0x10
mov ecx, dword [0x486fbc]
cmovae edx, dword [ebp - 0x48]
push 2
push ebx
push esi
call fcn.0042e156
add esp, 0xc
lea ecx, [ebp - 0x48]
call fcn.0044b89e
lea ecx, [ebp - 0xc4]
call fcn.0044b89e
lea ecx, [ebp - 0xdc]
call fcn.0044b6d9
lea ecx, [ebp - 0xf4]
call fcn.0044b89e
jmp 0x446094
lea ecx, [ebp - 0xfc]
mov dword [ebp - 4], 8
call fcn.0043e1d8
mov esi, dword [ebp - 0xf8]
mov edi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x104]
jmp 0x445fcb
test esi, esi
je 0x4460c8
mov ecx, esi
call fcn.0042a587
mov ecx, dword [ebp - 0x10c]
test ecx, ecx
je 0x4460e1
call fcn.0042a587
jmp 0x4460e1
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
mov dword [ebp - 0x20], ebx
lea ecx, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
mov byte [eax], bl
call fcn.0044b89e
jmp 0x4460fd
xor ebx, ebx
cmp dword [ebp - 0x98], 0x10
lea eax, [ebp - 0xac]
mov dword [ebp - 0x9c], ebx
lea ecx, [ebp - 0xac]
cmovae eax, dword [ebp - 0xac]
mov byte [eax], bl
call fcn.0044b89e
call fcn.0046bb38
ret