Function at 0x4b45cc
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xa0
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xa8]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x9c], eax
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edi
movzx ecx, byte [ebx + 0x14]
cmp cl, 0x73
jne 0x4b47f7
mov eax, ebx
call fcn.0040f8a8
xor al, 1
je 0x4b472b
mov dword [esp + 0x9c], ebx
lea edx, [esp + 0x54]
push edx
mov eax, dword [esp + 0xa8]
call fcn.0048d0b8
mov ebx, eax
mov ecx, 0x11
add ebx, 0x40
push dword [ebx]
sub ebx, 4
dec ecx
jne 0x4b4635
call fcn.004b6304
mov ecx, dword [esp + 0x9c]
mov edi, eax
cmp dword [ecx + 4], 0x7ffffffe
je 0x4b4671
mov esi, dword [esp + 0x9c]
cmp dword [esi + 4], edi
jae 0x4b4671
mov ebx, dword [esp + 0x9c]
mov edi, dword [ebx + 4]
mov dword [esp + 0x9c], ebx
mov edx, dword [esp + 0x9c]
mov eax, dword [edx]
cmp edi, eax
jae 0x4b4696
xor ebx, ebx
mov esi, eax
sub esi, edi
je 0x4b4696
push ebp
mov eax, 0x20
call fcn.00413958
inc ebx
cmp ebx, esi
jb 0x4b4686
mov ecx, dword [esp + 0x9c]
cmp dword [ecx + 4], 0x7ffffffe
jne 0x4b46c8
push ebp
mov ebx, dword [esp + 0xa8]
mov ecx, 0x11
add ebx, 0x40
push dword [ebx]
sub ebx, 4
dec ecx
jne 0x4b46b6
call fcn.004b6334
jmp 0x4b49af
mov ebx, dword [esp + 0x9c]
xor esi, esi
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
xor al, 1
je 0x4b49af
cmp dword [ebx + 4], esi
je 0x4b49af
push ebp
mov eax, dword [esp + 0xa8]
call fcn.0048ce70
call fcn.00413958
mov eax, dword [esp + 0xa4]
call fcn.0048ce7c
inc esi
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
xor al, 1
je 0x4b49af
cmp esi, dword [ebx + 4]
jb 0x4b46ee
jmp 0x4b49af
cmp dword [ebx + 4], 0x7ffffffe
jne 0x4b4777
xor esi, esi
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
xor al, 1
je 0x4b47c2
push ebp
mov eax, dword [esp + 0xa8]
call fcn.0048ce70
call fcn.00413958
mov eax, dword [esp + 0xa4]
call fcn.0048ce7c
inc esi
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
xor al, 1
jne 0x4b4746
jmp 0x4b47c2
xor esi, esi
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
xor al, 1
je 0x4b47c2
cmp dword [ebx + 4], esi
je 0x4b47c2
push ebp
mov eax, dword [esp + 0xa8]
call fcn.0048ce70
call fcn.00413958
mov eax, dword [esp + 0xa4]
call fcn.0048ce7c
inc esi
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
xor al, 1
je 0x4b47c2
cmp esi, dword [ebx + 4]
jb 0x4b478e
mov ecx, dword [ebx]
cmp esi, ecx
jae 0x4b49af
xor edi, edi
sub ecx, esi
mov dword [esp + 0x98], ecx
je 0x4b49af
push ebp
mov eax, 0x20
call fcn.00413958
inc edi
cmp edi, dword [esp + 0x98]
jb 0x4b47dd
jmp 0x4b49af
cmp cl, 0x72
jne 0x4b4846
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
xor al, 1
je 0x4b49af
push ebp
mov eax, dword [esp + 0xa8]
call fcn.0048ce70
push eax
mov eax, ebx
call fcn.004b6344
mov eax, dword [esp + 0xa4]
call fcn.0048ce7c
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
xor al, 1
jne 0x4b4810
jmp 0x4b49af
cmp cl, 0x28
jne 0x4b4970
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
test al, al
jne 0x4b49af
mov esi, 0x4cc320
lea edi, [esp + 0x24]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
lea eax, [esp + 0x2c]
call fcn.0040f918
push ebp
lea eax, [esp + 0x28]
call fcn.00410fbc
xor al, 1
jne 0x4b48fe
mov eax, ebx
call fcn.0040f8a8
test al, al
je 0x4b48b4
push ebp
mov eax, dword [esp + 0xa8]
call fcn.0048ce70
push eax
lea eax, [esp + 0x2c]
call fcn.004b6344
jmp 0x4b48cb
push ebp
mov eax, dword [esp + 0xa8]
call fcn.0048ce70
push eax
lea eax, [esp + 0x2c]
call fcn.004b635c
xor edx, edx
cmp dword [esp + 0x4c], edx
je 0x4b48fe
cmp edx, dword [esp + 0x4c]
jae 0x4b49c8
mov esi, dword [esp + 0x50]
cmp byte [esi + edx], 0x25
jne 0x4b48f7
push ebp
lea eax, [esp + 0x28]
call fcn.00410fbc
xor al, 1
jne 0x4b48fe
jmp 0x4b4890
inc edx
cmp edx, dword [esp + 0x4c]
jb 0x4b48d3
mov edx, dword [ebx + 0x24]
or edx, dword [ebx + 0x20]
je 0x4b4941
push ebp
push dword [esp + 0x54]
push dword [esp + 0x54]
call fcn.004111c8
mov eax, dword [esp + 0xa4]
call fcn.0048ce7c
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
test al, al
jne 0x4b49af
push ebp
push dword [ebx + 0x24]
push dword [ebx + 0x20]
call fcn.004111c8
jmp 0x4b4863
mov eax, dword [esp + 0xa4]
call fcn.0048ce7c
mov eax, dword [esp + 0xa4]
call fcn.0048ce60
test al, al
jne 0x4b49af
push ebp
push dword [esp + 0x54]
push dword [esp + 0x54]
call fcn.004111c8
jmp 0x4b4863
mov dword [esp], 0x4d7d90
call fcn.00462d20
mov edx, 0x4cc720
mov esi, eax
push edx
push 0x27
movzx eax, byte [ebx + 0x14]
call fcn.0040ef68
mov ecx, 0x4d7d50
push edx
push eax
mov eax, esi
push ecx
push 0xc
push 0xe05
push 0
call fcn.00466af4
mov dword [esp], eax
call fcn.00463074
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
add esp, 0xa0
ret 8
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0xde8
mov dword [esp], 0x4d7d50
call fcn.00462c8c