Function at 0x4a33ac
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 0x4a35d7
mov eax, ebx
call fcn.0044a748
xor al, 1
je 0x4a350b
mov dword [esp + 0xa8], ebx
lea edx, [esp + 0x24]
push edx
mov eax, dword [esp + 0xb4]
call fcn.0047c894
mov ebx, eax
mov ecx, 0x11
add ebx, 0x40
push dword [ebx]
sub ebx, 4
dec ecx
jne 0x4a3415
call fcn.004a5908
mov ecx, dword [esp + 0xa8]
mov edi, eax
cmp dword [ecx + 4], 0x7ffffffe
je 0x4a3451
mov esi, dword [esp + 0xa8]
cmp dword [esi + 4], edi
jae 0x4a3451
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 0x4a3476
xor ebx, ebx
mov esi, eax
sub esi, edi
je 0x4a3476
push ebp
mov eax, 0x20
call fcn.0040b3fc
inc ebx
cmp ebx, esi
jb 0x4a3466
mov ecx, dword [esp + 0xa8]
cmp dword [ecx + 4], 0x7ffffffe
jne 0x4a34a8
push ebp
mov ebx, dword [esp + 0xb4]
mov ecx, 0x11
add ebx, 0x40
push dword [ebx]
sub ebx, 4
dec ecx
jne 0x4a3496
call fcn.004a5938
jmp 0x4a37ab
mov ebx, dword [esp + 0xa8]
xor esi, esi
mov eax, dword [esp + 0xb0]
call fcn.0047c644
xor al, 1
je 0x4a37ab
cmp dword [ebx + 4], esi
je 0x4a37ab
push ebp
mov eax, dword [esp + 0xb4]
call fcn.0047c654
call fcn.0040b3fc
mov eax, dword [esp + 0xb0]
call fcn.0047c660
inc esi
mov eax, dword [esp + 0xb0]
call fcn.0047c644
xor al, 1
je 0x4a37ab
cmp esi, dword [ebx + 4]
jb 0x4a34ce
jmp 0x4a37ab
cmp dword [ebx + 4], 0x7ffffffe
jne 0x4a3557
xor esi, esi
mov eax, dword [esp + 0xb0]
call fcn.0047c644
xor al, 1
je 0x4a35a2
push ebp
mov eax, dword [esp + 0xb4]
call fcn.0047c654
call fcn.0040b3fc
mov eax, dword [esp + 0xb0]
call fcn.0047c660
inc esi
mov eax, dword [esp + 0xb0]
call fcn.0047c644
xor al, 1
jne 0x4a3526
jmp 0x4a35a2
xor esi, esi
mov eax, dword [esp + 0xb0]
call fcn.0047c644
xor al, 1
je 0x4a35a2
cmp dword [ebx + 4], esi
je 0x4a35a2
push ebp
mov eax, dword [esp + 0xb4]
call fcn.0047c654
call fcn.0040b3fc
mov eax, dword [esp + 0xb0]
call fcn.0047c660
inc esi
mov eax, dword [esp + 0xb0]
call fcn.0047c644
xor al, 1
je 0x4a35a2
cmp esi, dword [ebx + 4]
jb 0x4a356e
mov ecx, dword [ebx]
cmp esi, ecx
jae 0x4a37ab
xor edi, edi
sub ecx, esi
mov dword [esp + 0xa4], ecx
je 0x4a37ab
push ebp
mov eax, 0x20
call fcn.0040b3fc
inc edi
cmp edi, dword [esp + 0xa4]
jb 0x4a35bd
jmp 0x4a37ab
cmp cl, 0x72
jne 0x4a3626
mov eax, dword [esp + 0xb0]
call fcn.0047c644
xor al, 1
je 0x4a37ab
push ebp
mov eax, dword [esp + 0xb4]
call fcn.0047c654
push eax
mov eax, ebx
call fcn.004a5948
mov eax, dword [esp + 0xb0]
call fcn.0047c660
mov eax, dword [esp + 0xb0]
call fcn.0047c644
xor al, 1
jne 0x4a35f0
jmp 0x4a37ab
cmp cl, 0x28
jne 0x4a376c
mov eax, dword [esp + 0xb0]
call fcn.0047c644
test al, al
jne 0x4a37ab
mov esi, 0x4c1980
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.0044a81c
push ebp
lea eax, [esp + 0x78]
call fcn.0040bc3c
xor al, 1
jne 0x4a36ea
mov eax, ebx
call fcn.0044a748
test al, al
je 0x4a3694
push ebp
mov eax, dword [esp + 0xb4]
call fcn.0047c654
push eax
lea eax, [esp + 0x7c]
call fcn.004a5948
jmp 0x4a36ab
push ebp
mov eax, dword [esp + 0xb4]
call fcn.0047c654
push eax
lea eax, [esp + 0x7c]
call fcn.004a5960
xor edx, edx
cmp dword [esp + 0x9c], edx
je 0x4a36ea
cmp edx, dword [esp + 0x9c]
jae 0x4a37c4
mov esi, dword [esp + 0xa0]
cmp byte [esi + edx], 0x25
jne 0x4a36e0
push ebp
lea eax, [esp + 0x78]
call fcn.0040bc3c
xor al, 1
jne 0x4a36ea
jmp 0x4a3670
inc edx
cmp edx, dword [esp + 0x9c]
jb 0x4a36b6
mov edx, dword [ebx + 0x24]
or edx, dword [ebx + 0x20]
je 0x4a3737
push ebp
push dword [esp + 0xa4]
push dword [esp + 0xa4]
call fcn.0040be28
mov eax, dword [esp + 0xb0]
call fcn.0047c660
mov eax, dword [esp + 0xb0]
call fcn.0047c644
test al, al
jne 0x4a37ab
push ebp
push dword [ebx + 0x24]
push dword [ebx + 0x20]
call fcn.0040be28
jmp 0x4a3643
mov eax, dword [esp + 0xb0]
call fcn.0047c660
mov eax, dword [esp + 0xb0]
call fcn.0047c644
test al, al
jne 0x4a37ab
push ebp
push dword [esp + 0xa4]
push dword [esp + 0xa4]
call fcn.0040be28
jmp 0x4a3643
mov dword [esp], 0x4c1640
call fcn.0044a170
mov edx, 0x4bcfb0
mov esi, eax
push edx
push 0x27
movzx eax, byte [ebx + 0x14]
call fcn.0040ab50
mov ecx, 0x4c1600
push edx
push eax
mov eax, esi
push ecx
push 0xc
push 0xd4b
push 0
call fcn.0044a144
mov dword [esp], eax
call fcn.0044a110
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], 0x4c1600
call fcn.00449d20
int3