Function at 0x43c4b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push edi
mov edi, dword [ebp + 0x14]
mov ebx, eax
cmp edi, ebx
jne 0x43c57d
mov eax, dword [esi + 8]
mov ecx, dword [esi]
test eax, eax
jne 0x43c511
mov eax, dword [esi + 4]
push ebx
push eax
push ecx
call fcn.00423990
mov edx, dword [esi]
mov eax, dword [ebp + 8]
push edx
push eax
call dword [ebp + 0xc]
mov edi, dword [esi]
add esp, 0x14
test ebx, ebx
jle 0x43c4fa
mov eax, dword [ebp + 0x10]
sub edi, eax
mov ecx, ebx
mov dl, byte [edi + eax]
xor byte [eax], dl
inc eax
dec ecx
jne 0x43c4f1
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
push ebx
push eax
push ecx
call fcn.00423990
add esp, 0xc
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, ebx
sub edi, eax
add ecx, eax
test edi, edi
jle 0x43c52e
mov eax, dword [ebp + 0x10]
sub ecx, eax
mov dword [ebp + 0x14], edi
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
dec dword [ebp + 0x14]
jne 0x43c523
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push ebx
push eax
push ecx
call fcn.00423990
mov edx, dword [esi]
mov eax, dword [ebp + 8]
push edx
push eax
call dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 8]
mov edx, dword [esi]
add esp, 0x14
add eax, edi
test ecx, ecx
jle 0x43c561
sub edx, eax
mov bl, byte [edx + eax]
xor byte [eax], bl
inc eax
dec ecx
jne 0x43c558
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x10]
mov eax, dword [esi + 4]
push ecx
push edx
add eax, edi
push eax
call fcn.00423990
add esp, 0xc
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 8]
test edx, edx
jne 0x43c5d3
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ebx
push ecx
push edx
call fcn.00423990
mov eax, dword [esi]
mov ecx, dword [ebp + 8]
push eax
push ecx
call dword [ebp + 0xc]
mov ecx, dword [esi]
add esp, 0x14
test edi, edi
jle 0x43c5b9
mov eax, dword [ebp + 0x10]
sub ecx, eax
mov edx, edi
jmp 0x43c5b0
mov bl, byte [ecx + eax]
xor byte [eax], bl
inc eax
dec edx
jne 0x43c5b0
mov edx, dword [ebp + 0x10]
mov eax, dword [esi + 4]
push edi
push edx
push eax
call fcn.00423990
add esp, 0xc
mov dword [esi + 8], edi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
sub eax, edx
cmp eax, edi
jge 0x43c5db
mov edi, eax
mov ecx, dword [esi]
add ecx, edx
test edi, edi
jle 0x43c5fb
mov eax, dword [ebp + 0x10]
sub ecx, eax
mov dword [ebp - 4], edi
jmp 0x43c5f0
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
dec dword [ebp - 4]
jne 0x43c5f0
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x10]
add ecx, dword [esi + 4]
push edi
push eax
push ecx
call fcn.00423990
add dword [esi + 8], edi
add esp, 0xc
cmp edi, dword [ebp + 0x14]
jge 0x43c66d
mov edx, dword [esi + 4]
mov eax, dword [esi]
push ebx
push edx
push eax
call fcn.00423990
mov ecx, dword [esi]
mov edx, dword [ebp + 8]
push ecx
push edx
call dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov edx, dword [esi + 4]
lea ecx, [edi + eax]
mov eax, dword [ebp + 0x14]
sub eax, edi
add esp, 0x14
test eax, eax
jle 0x43c659
mov edi, edx
sub edi, ecx
mov edx, eax
lea esp, [esp]
mov bl, byte [edi + ecx]
xor byte [ecx], bl
inc ecx
dec edx
jne 0x43c650
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 4]
push eax
push ecx
push edx
mov dword [esi + 8], eax
call fcn.00423990
add esp, 0xc
pop edi
pop ebx
mov esp, ebp
pop ebp
ret