Function at 0x45f2e29a
Capabilities:
Encode data using xor

Disassembly:
push 0x88
mov eax, 0x45fcc80d
call fcn.45fb19fd
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 0x4c], 0x45dcf72c
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], 0x3c
lea eax, [ebp - 0x94]
push eax
mov dword [ebp - 4], ebx
call fcn.45e74dda
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
mov eax, dword [edi]
push ecx
mov ecx, edi
mov dword [ebp - 0x14], ebx
call dword [eax + 0x114]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x14], ebx
je 0x45f2e2fb
cmp eax, ebx
je 0x45f2e4e1
mov cl, byte [0x4603ba68]
test cl, cl
jne 0x45f2e2ee
cmp dword [ebp - 0x14], ebx
jbe 0x45f2e356
mov eax, dword [ebp - 0x18]
push dword [eax + ebx*4]
lea esi, [ebp - 0x24]
call fcn.45f8f423
mov byte [ebp - 4], 2
mov ecx, dword [edi + 0x20]
mov eax, dword [ecx]
mov edx, esi
push edx
call dword [eax + 0x168]
cdq
mov esi, eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff4
xor esi, edx
push eax
sub esi, edx
call fcn.45f8f362
pop ecx
push esi
lea eax, [ebp - 0x94]
call fcn.45e13f35
inc ebx
cmp ebx, dword [ebp - 0x14]
jb 0x45f2e30a
xor ebx, ebx
mov eax, dword [edi]
lea ecx, [ebp - 0x14]
push ecx
mov ecx, edi
mov dword [ebp - 0x14], ebx
call dword [eax + 0x118]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x14], ebx
je 0x45f2e377
cmp eax, ebx
je 0x45f2e521
mov cl, byte [0x4603ba68]
test cl, cl
jne 0x45f2e36a
xor esi, esi
cmp dword [ebp - 0x14], esi
jbe 0x45f2e3d4
mov eax, dword [ebp - 0x18]
push dword [eax + ebx*4]
lea esi, [ebp - 0x30]
call fcn.45f8f423
mov byte [ebp - 4], 3
mov ecx, dword [edi + 0x20]
mov eax, dword [ecx]
mov edx, esi
push edx
call dword [eax + 0x168]
cdq
mov esi, eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff4
xor esi, edx
push eax
sub esi, edx
call fcn.45f8f362
pop ecx
push esi
lea eax, [ebp - 0x94]
call fcn.45e13f35
inc ebx
cmp ebx, dword [ebp - 0x14]
jb 0x45f2e388
xor esi, esi
mov eax, dword [edi]
lea ecx, [ebp - 0x14]
push ecx
mov ecx, edi
mov dword [ebp - 0x14], esi
call dword [eax + 0x11c]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x14], esi
je 0x45f2e3f5
cmp eax, esi
je 0x45f2e55d
mov cl, byte [0x4603ba68]
test cl, cl
jne 0x45f2e3e8
xor ebx, ebx
cmp dword [ebp - 0x14], ebx
jbe 0x45f2e450
mov eax, dword [ebp - 0x18]
push dword [eax + ebx*4]
lea esi, [ebp - 0x28]
call fcn.45f8f423
mov byte [ebp - 4], 4
mov ecx, dword [edi + 0x20]
mov eax, dword [ecx]
mov edx, esi
push edx
call dword [eax + 0x168]
cdq
mov esi, eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff4
xor esi, edx
push eax
sub esi, edx
call fcn.45f8f362
pop ecx
push esi
lea eax, [ebp - 0x94]
call fcn.45e13f35
inc ebx
cmp ebx, dword [ebp - 0x14]
jb 0x45f2e406
mov ecx, dword [edi + 0x20]
mov eax, dword [ecx]
lea edx, [ebp - 0x94]
push edx
call dword [eax + 0x170]
mov edi, dword [edi + 0x20]
lea ecx, [ebp - 0x4c]
push ecx
push eax
call fcn.45f216a3
mov ebx, eax
xor edi, edi
test ebx, ebx
jbe 0x45f2e4b0
mov eax, dword [ebp - 0x4c]
push edi
lea ecx, [ebp - 0x4c]
call dword [eax]
push dword [eax + 0x1c]
lea esi, [ebp - 0x20]
call fcn.45f8f423
mov ecx, dword [ebp + 8]
mov eax, esi
push eax
mov byte [ebp - 4], 5
call fcn.45f2e59e
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff4
push eax
call fcn.45f8f362
inc edi
pop ecx
cmp edi, ebx
jb 0x45f2e477
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0
call fcn.45e74cf5
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], 0x45dcf72c
je 0x45f2e4d9
push dword [ebp - 0x48]
call fcn.45dd96ef
pop ecx
call fcn.45fb1ae9
ret 4
lea eax, [ebp - 0x2c]
push eax
push 0x18f
push 0x45dcfa38
mov edi, 0x80004005
push edi
mov dword [ebp - 0x2c], ebx
call fcn.45f85675
mov eax, dword [ebp - 0x2c]
add esp, 0x10
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x5c], 0x45dc096c
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x50], ebx
push 0x45ff0f98
lea eax, [ebp - 0x5c]
push eax
call fcn.45fb1416
lea eax, [ebp - 0x34]
push eax
push 0x199
push 0x45dcfa38
mov edi, 0x80004005
push edi
mov dword [ebp - 0x34], ebx
call fcn.45f85675
mov eax, dword [ebp - 0x34]
add esp, 0x10
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x6c], 0x45dc096c
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x60], ebx
push 0x45ff0f98
lea eax, [ebp - 0x6c]
jmp 0x45f2e51b
lea eax, [ebp - 0x1c]
push eax
push 0x1a3
push 0x45dcfa38
mov edi, 0x80004005
push edi
mov dword [ebp - 0x1c], esi
call fcn.45f85675
mov eax, dword [ebp - 0x1c]
add esp, 0x10
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x7c], 0x45dc096c
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x70], esi
push 0x45ff0f98
lea eax, [ebp - 0x7c]
jmp 0x45f2e51b