Function at 0x4111b0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xcc
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xd4]
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc8], eax
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edi
movzx ecx, byte [ebx + 0x14]
cmp cl, 0x73
jne 0x4113db
mov eax, ebx
call fcn.0044a748
xor al, 1
je 0x41130f
mov dword [esp + 0xc8], ebx
lea edx, [esp + 0x24]
push edx
mov eax, dword [esp + 0xd4]
call fcn.00410eb8
mov ebx, eax
mov ecx, 0x1c
add ebx, 0x6c
push dword [ebx]
sub ebx, 4
dec ecx
jne 0x411219
call fcn.004118c8
mov ecx, dword [esp + 0xc8]
mov edi, eax
cmp dword [ecx + 4], 0x7ffffffe
je 0x411255
mov esi, dword [esp + 0xc8]
cmp dword [esi + 4], edi
jae 0x411255
mov ebx, dword [esp + 0xc8]
mov edi, dword [ebx + 4]
mov dword [esp + 0xc8], ebx
mov edx, dword [esp + 0xc8]
mov eax, dword [edx]
cmp edi, eax
jae 0x41127a
xor ebx, ebx
mov esi, eax
sub esi, edi
je 0x41127a
push ebp
mov eax, 0x20
call fcn.0040b3fc
inc ebx
cmp ebx, esi
jb 0x41126a
mov ecx, dword [esp + 0xc8]
cmp dword [ecx + 4], 0x7ffffffe
jne 0x4112ac
push ebp
mov ebx, dword [esp + 0xd4]
mov ecx, 0x1c
add ebx, 0x6c
push dword [ebx]
sub ebx, 4
dec ecx
jne 0x41129a
call fcn.004118f8
jmp 0x4115c5
mov ebx, dword [esp + 0xc8]
xor esi, esi
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
xor al, 1
je 0x4115c5
cmp dword [ebx + 4], esi
je 0x4115c5
push ebp
mov eax, dword [esp + 0xd4]
call fcn.00410ea8
call fcn.0040b970
mov eax, dword [esp + 0xd0]
call fcn.00410eb0
inc esi
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
xor al, 1
je 0x4115c5
cmp esi, dword [ebx + 4]
jb 0x4112d2
jmp 0x4115c5
cmp dword [ebx + 4], 0x7ffffffe
jne 0x41135b
xor esi, esi
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
xor al, 1
je 0x4113a6
push ebp
mov eax, dword [esp + 0xd4]
call fcn.00410ea8
call fcn.0040b970
mov eax, dword [esp + 0xd0]
call fcn.00410eb0
inc esi
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
xor al, 1
jne 0x41132a
jmp 0x4113a6
xor esi, esi
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
xor al, 1
je 0x4113a6
cmp dword [ebx + 4], esi
je 0x4113a6
push ebp
mov eax, dword [esp + 0xd4]
call fcn.00410ea8
call fcn.0040b970
mov eax, dword [esp + 0xd0]
call fcn.00410eb0
inc esi
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
xor al, 1
je 0x4113a6
cmp esi, dword [ebx + 4]
jb 0x411372
mov ecx, dword [ebx]
cmp esi, ecx
jae 0x4115c5
xor edi, edi
sub ecx, esi
mov dword [esp + 0xc4], ecx
je 0x4115c5
push ebp
mov eax, 0x20
call fcn.0040b3fc
inc edi
cmp edi, dword [esp + 0xc4]
jb 0x4113c1
jmp 0x4115c5
cmp cl, 0x72
jne 0x41142a
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
xor al, 1
je 0x4115c5
push ebp
mov eax, dword [esp + 0xd4]
call fcn.00410ea8
push eax
mov eax, ebx
call fcn.00411970
mov eax, dword [esp + 0xd0]
call fcn.00410eb0
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
xor al, 1
jne 0x4113f4
jmp 0x4115c5
cmp cl, 0x28
jne 0x411586
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
test al, al
jne 0x4115c5
mov esi, 0x4c1980
lea edi, [esp + 0x94]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
lea eax, [esp + 0x9c]
call fcn.0044a81c
push ebp
lea eax, [esp + 0x98]
call fcn.0040bc3c
xor al, 1
jne 0x411504
mov eax, ebx
call fcn.0044a748
test al, al
je 0x4114a8
push ebp
mov eax, dword [esp + 0xd4]
call fcn.00410ea8
push eax
lea eax, [esp + 0x9c]
call fcn.00411970
jmp 0x4114c2
push ebp
mov eax, dword [esp + 0xd4]
call fcn.00410ea8
push eax
lea eax, [esp + 0x9c]
call fcn.00411988
xor edx, edx
cmp dword [esp + 0xbc], edx
je 0x411504
cmp edx, dword [esp + 0xbc]
jae 0x4115de
mov esi, dword [esp + 0xc0]
cmp byte [esi + edx], 0x25
jne 0x4114fa
push ebp
lea eax, [esp + 0x98]
call fcn.0040bc3c
xor al, 1
jne 0x411504
jmp 0x411481
inc edx
cmp edx, dword [esp + 0xbc]
jb 0x4114cd
mov edx, dword [ebx + 0x24]
or edx, dword [ebx + 0x20]
je 0x411551
push ebp
push dword [esp + 0xc4]
push dword [esp + 0xc4]
call fcn.0040be28
mov eax, dword [esp + 0xd0]
call fcn.00410eb0
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
test al, al
jne 0x4115c5
push ebp
push dword [ebx + 0x24]
push dword [ebx + 0x20]
call fcn.0040be28
jmp 0x411447
mov eax, dword [esp + 0xd0]
call fcn.00410eb0
mov eax, dword [esp + 0xd0]
call fcn.00410ea0
test al, al
jne 0x4115c5
push ebp
push dword [esp + 0xc4]
push dword [esp + 0xc4]
call fcn.0040be28
jmp 0x411447
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, 0x4bcf50
push edx
push eax
mov eax, esi
push ecx
push 0x5b
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, 0xcc
ret 8
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0xd35
mov dword [esp], 0x4bcf50
call fcn.00449d20
int3