Function at 0x45f05c
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xac
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x14], ebx
mov dword [esp + 0xa8], eax
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edi
movzx ecx, byte [ebx + 0x14]
cmp cl, 0x73
jne 0x45f287
mov eax, ebx
call fcn.0040f024
xor al, 1
je 0x45f1bb
mov dword [esp + 0xa8], ebx
lea edx, [esp + 0x24]
push edx
mov eax, dword [esp + 0xb4]
call fcn.00437f90
mov ebx, eax
mov ecx, 0x11
add ebx, 0x40
push dword [ebx]
sub ebx, 4
dec ecx
jne 0x45f0c5
call fcn.00461a44
mov ecx, dword [esp + 0xa8]
mov edi, eax
cmp dword [ecx + 4], 0x7ffffffe
je 0x45f101
mov esi, dword [esp + 0xa8]
cmp dword [esi + 4], edi
jae 0x45f101
mov ebx, dword [esp + 0xa8]
mov edi, dword [ebx + 4]
mov dword [esp + 0xa8], ebx
mov edx, dword [esp + 0xa8]
mov eax, dword [edx]
cmp edi, eax
jae 0x45f126
xor ebx, ebx
mov esi, eax
sub esi, edi
je 0x45f126
push ebp
mov eax, 0x20
call fcn.00410e70
inc ebx
cmp ebx, esi
jb 0x45f116
mov ecx, dword [esp + 0xa8]
cmp dword [ecx + 4], 0x7ffffffe
jne 0x45f158
push ebp
mov ebx, dword [esp + 0xb4]
mov ecx, 0x11
add ebx, 0x40
push dword [ebx]
sub ebx, 4
dec ecx
jne 0x45f146
call fcn.00461a74
jmp 0x45f45b
mov ebx, dword [esp + 0xa8]
xor esi, esi
mov eax, dword [esp + 0xb0]
call fcn.00437d40
xor al, 1
je 0x45f45b
cmp dword [ebx + 4], esi
je 0x45f45b
push ebp
mov eax, dword [esp + 0xb4]
call fcn.00437d50
call fcn.00410e70
mov eax, dword [esp + 0xb0]
call fcn.00437d5c
inc esi
mov eax, dword [esp + 0xb0]
call fcn.00437d40
xor al, 1
je 0x45f45b
cmp esi, dword [ebx + 4]
jb 0x45f17e
jmp 0x45f45b
cmp dword [ebx + 4], 0x7ffffffe
jne 0x45f207
xor esi, esi
mov eax, dword [esp + 0xb0]
call fcn.00437d40
xor al, 1
je 0x45f252
push ebp
mov eax, dword [esp + 0xb4]
call fcn.00437d50
call fcn.00410e70
mov eax, dword [esp + 0xb0]
call fcn.00437d5c
inc esi
mov eax, dword [esp + 0xb0]
call fcn.00437d40
xor al, 1
jne 0x45f1d6
jmp 0x45f252
xor esi, esi
mov eax, dword [esp + 0xb0]
call fcn.00437d40
xor al, 1
je 0x45f252
cmp dword [ebx + 4], esi
je 0x45f252
push ebp
mov eax, dword [esp + 0xb4]
call fcn.00437d50
call fcn.00410e70
mov eax, dword [esp + 0xb0]
call fcn.00437d5c
inc esi
mov eax, dword [esp + 0xb0]
call fcn.00437d40
xor al, 1
je 0x45f252
cmp esi, dword [ebx + 4]
jb 0x45f21e
mov ecx, dword [ebx]
cmp esi, ecx
jae 0x45f45b
xor edi, edi
sub ecx, esi
mov dword [esp + 0xa4], ecx
je 0x45f45b
push ebp
mov eax, 0x20
call fcn.00410e70
inc edi
cmp edi, dword [esp + 0xa4]
jb 0x45f26d
jmp 0x45f45b
cmp cl, 0x72
jne 0x45f2d6
mov eax, dword [esp + 0xb0]
call fcn.00437d40
xor al, 1
je 0x45f45b
push ebp
mov eax, dword [esp + 0xb4]
call fcn.00437d50
push eax
mov eax, ebx
call fcn.00461a84
mov eax, dword [esp + 0xb0]
call fcn.00437d5c
mov eax, dword [esp + 0xb0]
call fcn.00437d40
xor al, 1
jne 0x45f2a0
jmp 0x45f45b
cmp cl, 0x28
jne 0x45f41c
mov eax, dword [esp + 0xb0]
call fcn.00437d40
test al, al
jne 0x45f45b
mov esi, 0x471df0
lea edi, [esp + 0x74]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
lea eax, [esp + 0x7c]
call fcn.0040f0fc
push ebp
lea eax, [esp + 0x78]
call fcn.00411a48
xor al, 1
jne 0x45f39a
mov eax, ebx
call fcn.0040f024
test al, al
je 0x45f344
push ebp
mov eax, dword [esp + 0xb4]
call fcn.00437d50
push eax
lea eax, [esp + 0x7c]
call fcn.00461a84
jmp 0x45f35b
push ebp
mov eax, dword [esp + 0xb4]
call fcn.00437d50
push eax
lea eax, [esp + 0x7c]
call fcn.00461a9c
xor edx, edx
cmp dword [esp + 0x9c], edx
je 0x45f39a
cmp edx, dword [esp + 0x9c]
jae 0x45f474
mov esi, dword [esp + 0xa0]
cmp byte [esi + edx], 0x25
jne 0x45f390
push ebp
lea eax, [esp + 0x78]
call fcn.00411a48
xor al, 1
jne 0x45f39a
jmp 0x45f320
inc edx
cmp edx, dword [esp + 0x9c]
jb 0x45f366
mov edx, dword [ebx + 0x24]
or edx, dword [ebx + 0x20]
je 0x45f3e7
push ebp
push dword [esp + 0xa4]
push dword [esp + 0xa4]
call fcn.00411be4
mov eax, dword [esp + 0xb0]
call fcn.00437d5c
mov eax, dword [esp + 0xb0]
call fcn.00437d40
test al, al
jne 0x45f45b
push ebp
push dword [ebx + 0x24]
push dword [ebx + 0x20]
call fcn.00411be4
jmp 0x45f2f3
mov eax, dword [esp + 0xb0]
call fcn.00437d5c
mov eax, dword [esp + 0xb0]
call fcn.00437d40
test al, al
jne 0x45f45b
push ebp
push dword [esp + 0xa4]
push dword [esp + 0xa4]
call fcn.00411be4
jmp 0x45f2f3
mov dword [esp], 0x4739d0
call fcn.0041e21c
mov edx, 0x4721a0
mov esi, eax
push edx
push 0x27
movzx eax, byte [ebx + 0x14]
call fcn.00413990
mov ecx, 0x473990
push edx
push eax
mov eax, esi
push ecx
push 0xc
push 0xd4b
push 0
call fcn.0042039c
mov dword [esp], eax
call fcn.0041de30
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
add esp, 0xac
ret 8
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0xd35
mov dword [esp], 0x473990
call fcn.0041bd28
int3