Function at 0xbc01153
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1cc
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x198]
push eax
xor ebx, ebx
push 0x101
mov dword [ebp - 0x1ac], ebx
mov dword [ebp - 0x1b0], ebx
call dword [0xbc0c1a0]
push 0x8c
push 0x40
call dword [0xbc0c078]
push 0x30
mov dword [0xbc10d68], eax
mov dword [eax + 4], eax
mov dword [eax], eax
push ebx
lea eax, [ebp - 0x1c8]
push eax
call fcn.0bc08d5e
mov esi, 0xbc108d0
cmp dword [0xbc108d0], ebx
je 0xbc0121f
lea eax, [ebp - 0x1c8]
mov dword [ebp - 0x1a0], eax
mov eax, dword [esi]
mov dword [ebp - 0x1a8], eax
call fcn.0bc08d51
mov edi, eax
cmp edi, ebx
jne 0xbc011df
xor edi, edi
jmp 0xbc01206
xor edx, edx
cmp dword [ebp - 0x1a8], ebx
jle 0xbc01206
mov eax, esi
sub eax, edi
lea ecx, [edx + edi]
mov bl, byte [eax + ecx + 4]
xor bl, dl
xor bl, 0x13
inc edx
mov byte [ecx], bl
cmp edx, dword [ebp - 0x1a8]
jl 0xbc011ed
xor ebx, ebx
mov eax, dword [ebp - 0x1a0]
add dword [ebp - 0x1a0], 4
mov dword [eax], edi
mov eax, dword [esi]
lea esi, [esi + eax + 4]
cmp dword [esi], ebx
jne 0xbc011c8
mov esi, dword [0xbc0c1bc]
lea eax, [ebp - 0x1ac]
push eax
push 1
push ebx
call esi
mov ecx, dword [ebp - 0x1ac]
cmp ecx, ebx
jne 0xbc01255
lea eax, [ebp - 0x1ac]
push eax
push 1
push ebx
call esi
mov ecx, dword [ebp - 0x1ac]
cmp ecx, ebx
je 0xbc0141c
mov esi, ecx
call fcn.0bc01431
cmp eax, ebx
jne 0xbc0127a
mov ecx, esi
call fcn.0bc01431
cmp eax, ebx
jne 0xbc0127a
mov ecx, esi
call fcn.0bc01431
cmp eax, ebx
je 0xbc0140c
cmp dword [ebp - 0x1c8], ebx
je 0xbc0140c
lea eax, [ebp - 0x1c8]
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x1a8], 8
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x19c], ebx
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1a4], ebx
cmp eax, ebx
je 0xbc013d1
lea ecx, [ebp - 0x1b8]
push ecx
push eax
call dword [0xbc0c1b8]
test eax, eax
js 0xbc01367
mov eax, dword [ebp - 0x1b4]
call fcn.0bc089a1
push dword [ebp - 0x1b8]
mov edi, eax
call dword [0xbc0c108]
mov esi, eax
cmp esi, ebx
je 0xbc01367
lea eax, [ebp - 0x1a4]
push eax
lea eax, [ebp - 0x19c]
push eax
mov eax, dword [ebp - 0x1a0]
push edi
push esi
push dword [eax]
mov dword [ebp - 0x1a4], ebx
mov dword [ebp - 0x19c], ebx
call fcn.0bc01bf7
add esp, 0x14
cmp dword [ebp - 0x1a4], ebx
je 0xbc01355
push ebx
lea eax, [ebp - 0x19c]
push eax
push edi
push esi
push dword [ebp - 0x1a4]
call fcn.0bc01bf7
add esp, 0x14
push dword [ebp - 0x1a4]
mov dword [ebp - 0x1bc], eax
call fcn.0bc08d3d
mov eax, dword [ebp - 0x1bc]
pop ecx
push dword [ebp - 0x1b8]
mov dword [ebp - 0x1a4], eax
call dword [0xbc0c100]
mov eax, dword [ebp - 0x1b4]
call fcn.0bc08b27
cmp dword [ebp - 0x1a4], ebx
je 0xbc013b9
cmp dword [ebp - 0x19c], ebx
je 0xbc013d1
push dword [ebp - 0x19c]
call fcn.0bc010d8
pop ecx
mov dword [ebp - 0x1b0], eax
cmp eax, ebx
jne 0xbc013b9
mov ecx, dword [ebp - 0x19c]
call fcn.0bc0973a
test eax, eax
je 0xbc013b9
push dword [ebp - 0x19c]
call fcn.0bc010d8
pop ecx
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x19c]
cmp eax, ebx
je 0xbc013c9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x1b0], ebx
jne 0xbc013ef
cmp dword [ebp - 0x1a8], ebx
je 0xbc013ef
dec dword [ebp - 0x1a8]
push 0x2ee0
call dword [0xbc0c104]
jmp 0xbc0129c
add dword [ebp - 0x1a0], 4
cmp dword [ebp - 0x1b0], ebx
jne 0xbc0140c
mov eax, dword [ebp - 0x1a0]
cmp dword [eax], ebx
jne 0xbc01292
mov eax, dword [ebp - 0x1ac]
cmp eax, ebx
je 0xbc0141c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x1b0]
pop edi
pop esi
xor ecx, ebp
pop ebx
call int.0bc09fdc
leave
ret