Function at 0x45d05e
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4e8009
call fcn.004e7638
sub esp, 0x58
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x20], edi
cmp dword [edi], 0
je 0x45d39c
push dword [edi]
xor ebx, ebx
push ebx
push dword [edi + 4]
call fcn.004cf3f3
add esp, 0xc
mov dword [ebp - 0x18], 8
mov dword [ebp - 0x1c], 0xfd89d684
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x1c], 0xb8f3bec
push 4
lea ecx, [ebp - 0x34]
call fcn.0043b6f6
mov dword [ebp - 0x1c], 0x3ec8
cmp dword [ebp - 0x1c], 0x3f19
jle 0x45d105
mov esi, ebx
mov edi, ebx
mov eax, edi
or eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x64]
call fcn.004018f3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x45d0de
mov eax, dword [eax]
push eax
call fcn.004d1e97
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x64]
call fcn.0043bad2
inc edi
cmp edi, 0x5d05
jl 0x45d0c5
inc esi
cmp esi, 0x2b4b
jl 0x45d0c3
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], 0xbf698ba8
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x1c], 0x3e61
jge 0x45d123
push 0xa9d918
call fcn.004d1e97
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x45d150
mov dword [ebp - 0x1c], ebx
jmp 0x45d161
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x45d155
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x45d178
push ebx
push ebx
call dword [0xac003c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setne dl
imul edx, dword [ebp - 0x18]
sub edx, 6
cmp edx, 1
sbb eax, eax
neg eax
add eax, dword [ebp - 0x18]
jne 0x45d1be
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, esi
sub ecx, eax
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setg dl
shl edx, 3
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x18]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setle dl
add edx, dword [ebp - 0x18]
xor eax, eax
cmp edx, 0xbc6e
setle al
cmp eax, 0xade726f2
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x34]
imul edx, dword [eax + 4]
add edx, 0xf41a
mov dword [ebp - 0x24], edx
lea ecx, [ebp - 0x34]
call fcn.0043b7c8
push dword [edi + 4]
call fcn.004d1f6d
pop ecx
mov dword [ebp - 0x28], 0xfffffffc
mov dword [ebp - 0x28], 5
mov dword [ebp - 0x1c], 0x8bbd188
push 2
lea ecx, [ebp - 0x4c]
call fcn.0043b6f6
mov dword [ebp - 0x24], 0xe3a4c638
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x24], 0x9e96bb64
mov dword [ebp - 0x24], 0xb17b4d2c
push 1
lea ecx, [ebp - 0x40]
call fcn.0043b6f6
mov dword [ebp - 0x18], ebx
jmp 0x45d2a4
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
mov dword [eax + ecx*4], 0x5300ce3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x45d294
mov dword [ebp - 0x18], ebx
jmp 0x45d2bf
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
mov dword [eax + ecx*4], 0xda84b505
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x45d2af
mov eax, dword [ebp - 0x24]
inc eax
cmp esi, eax
sbb eax, eax
inc eax
cmp eax, 0x25c7e4dd
jne 0x45d2d8
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0x4c]
cmp dword [eax], 0xfffffff9
setl cl
xor edx, edx
cmp ecx, 0xfffffff7
setl dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setle cl
mov eax, dword [ebp - 0x40]
mov dword [eax], ecx
lea ecx, [ebp - 0x40]
call fcn.0043b7c8
lea ecx, [ebp - 0x4c]
call fcn.0043b7c8
mov dword [edi + 4], ebx
mov dword [ebp - 0x1c], 0x6a3a
cmp dword [ebp - 0x1c], 0x6cc1
jle 0x45d358
mov edi, ebx
mov esi, ebx
mov eax, esi
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xabd5d8
call fcn.0043b5e1
inc esi
cmp esi, 0xc03
jl 0x45d321
inc edi
cmp edi, 0x3a1f
jl 0x45d31f
push ebx
push ebx
push 0x321
push ebx
call dword [0xac0510]
or esi, 0xffffffff
mov edi, dword [ebp - 0x20]
mov dword [edi], ebx
mov dword [ebp - 4], 2
cmp dword [ebp - 0x1c], 0x6905
jge 0x45d379
mov edx, 0xa9d990
mov ecx, 0xabd5d8
call fcn.0043cf87
mov dword [ebp - 4], esi
jmp 0x45d39c
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret