Function at 0x43b0fa
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
push ebx
push esi
push edi
mov edi, dword [ebp + 0x20]
mov eax, dword [edi]
add eax, 0x48
push eax
call fcn.00420a68
mov esi, eax
mov eax, dword [ebp + 0x24]
test eax, eax
pop ecx
je 0x43b14e
mov ebx, dword [eax]
cmp ebx, 0x20
jge 0x43b147
push ebx
push dword [eax + 4]
push esi
call fcn.0046c3a0
push 0x20
pop eax
sub eax, ebx
add ebx, esi
push eax
push 0x520100
push ebx
call fcn.0046c3a0
add esp, 0x18
jmp 0x43b15e
push 0x20
push dword [eax + 4]
jmp 0x43b155
push 0x20
push 0x520100
push esi
call fcn.0046c3a0
add esp, 0xc
mov ecx, dword [ebp + 0x14]
push 0x20
lea eax, [esi + 0x20]
push dword [ecx + 4]
push eax
call fcn.0046c3a0
mov eax, dword [ebp + 0x1c]
mov ecx, eax
mov byte [esi + 0x40], al
sar ecx, 8
mov byte [esi + 0x41], cl
mov ecx, eax
sar ecx, 0x10
sar eax, 0x18
mov byte [esi + 0x42], cl
mov byte [esi + 0x43], al
push dword [edi]
lea eax, [esi + 0x44]
push dword [edi + 4]
push eax
call fcn.0046c3a0
mov eax, dword [edi]
add esp, 0x18
add eax, 0x44
cmp dword [ebp + 0x2c], 0
jne 0x43b1bd
or byte [eax + esi], 0xff
or byte [eax + esi + 1], 0xff
inc eax
inc eax
or byte [eax + esi], 0xff
or byte [eax + esi + 1], 0xff
inc eax
inc eax
push dword [ebp + 0x28]
push eax
push esi
call fcn.0043cc90
add esp, 0xc
cmp dword [ebp + 0xc], 3
jne 0x43b1e7
push 0x32
pop ebx
push dword [ebp + 0x28]
push dword [ebp + 0x10]
push dword [ebp + 0x28]
call fcn.0043cc90
add esp, 0xc
dec ebx
jne 0x43b1d3
cmp dword [ebp + 0xc], 2
jne 0x43b25b
lea eax, [ebp - 0x134]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x28]
call fcn.0043b791
and byte [ebp + 0x23], 0
and byte [ebp - 1], 0
add esp, 0xc
xor edi, edi
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
mov al, byte [eax + edi]
mov byte [ebp + 0x28], al
lea eax, [ebp + 0x23]
push dword [ebp + 0x28]
push eax
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.0043b7fd
add esp, 0x10
mov byte [ebp + edi - 0x34], al
inc edi
cmp edi, 0x20
jl 0x43b20c
push 0x20
lea eax, [ebp - 0x34]
push 0x520100
push eax
call fcn.0046d4e0
add esp, 0xc
mov edi, eax
neg edi
sbb edi, edi
inc edi
jmp 0x43b33a
cmp dword [ebp + 0xc], 3
jne 0x43b338
mov eax, dword [ebp + 0x18]
push 0x20
push dword [eax + 4]
lea eax, [ebp - 0x34]
push eax
call fcn.0046c3a0
add esp, 0xc
mov dword [ebp + 0x18], 0x13
xor ecx, ecx
cmp dword [ebp + 0x10], ecx
jle 0x43b2a7
mov eax, dword [ebp + 0x28]
lea edx, [ebp - 0x14]
sub eax, edx
mov dword [ebp + 0xc], eax
mov edx, dword [ebp + 0xc]
lea eax, [ebp + ecx - 0x14]
mov dl, byte [edx + eax]
xor dl, byte [ebp + 0x18]
inc ecx
cmp ecx, dword [ebp + 0x10]
mov byte [eax], dl
jl 0x43b292
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0x14]
push dword [ebp + 0x10]
push eax
call fcn.0043b791
and byte [ebp + 0x23], 0
and byte [ebp - 1], 0
add esp, 0xc
and dword [ebp + 0xc], 0
mov eax, dword [ebp + 0xc]
lea ebx, [ebp + eax - 0x34]
mov al, byte [ebp + eax - 0x34]
push eax
lea eax, [ebp + 0x23]
push eax
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.0043b7fd
add esp, 0x10
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 0x20
mov byte [ebx], al
jl 0x43b2c9
dec dword [ebp + 0x18]
jns 0x43b280
push 0x20
push 0x520100
push esi
call fcn.0046c3a0
push dword [edi]
lea eax, [esi + 0x20]
push dword [edi + 4]
push eax
call fcn.0046c3a0
mov eax, dword [edi]
push esi
add eax, 0x20
push eax
push esi
call fcn.0043cc90
push 0x10
lea eax, [ebp - 0x34]
push esi
push eax
call fcn.0046d4e0
add esp, 0x30
jmp 0x43b24f
xor edi, edi
push esi
call fcn.00420b8e
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret