Function at 0x43d450
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov ebp, dword [esp + 0x30]
mov dword [esp], 0xf8fbfafd
mov word [esp + 4], 0
mov edx, 0x65053c2b
nop
nop
movzx eax, byte [esp + edx - 0x65053c2b]
mov ebx, eax
mov esi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x3d
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x29
mov byte [esp + edx - 0x65053c2b], al
inc edx
cmp edx, 0x65053c31
jne 0x43d470
mov esi, dword [esp]
mov eax, dword [0x44a8e4]
test eax, eax
je 0x43d50e
xor ecx, ecx
mov edx, dword [0x44a8e8]
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x33079ccd
je 0x43d4e0
inc ecx
cmp eax, ecx
jne 0x43d4d0
jmp 0x43d50e
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x43d50e
lea ecx, [esp + 0x10]
push ecx
push 0
push 0
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 6
push eax
push dword [0x44a8ec]
call fcn.004390d0
add esp, 0x24
mov esi, eax
mov dword [esp], 0xdf1e197f
mov dword [esp + 4], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx]
mov edx, eax
and edx, 4
mov ebx, ecx
xor ebx, 0xb3904d3a
add ebx, edx
mov edx, ebx
and edx, edi
add edx, edx
add ebx, edi
sub edx, ebx
lea edi, [edx + edx]
and edi, 0x46
xor edx, 0xdc
sub edx, edi
add dl, 2
mov byte [esp + ecx], dl
inc ecx
add eax, 2
cmp ecx, 8
jne 0x43d530
cmp esi, dword [esp]
jne 0x43d741
push dword [esp + 0x10]
call fcn.00435fa0
add esp, 4
mov edi, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp], 0xf8fbfafd
mov word [esp + 4], 0
mov esi, 0x65053c2b
movzx edx, byte [esp + esi - 0x65053c2b]
mov ebx, edx
and ebx, esi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x3d
mul cl
mov ecx, eax
add cl, dl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0x29
mov byte [esp + esi - 0x65053c2b], al
inc esi
cmp esi, 0x65053c31
jne 0x43d5a0
mov esi, dword [esp]
mov eax, dword [0x44a8e4]
test eax, eax
je 0x43d610
xor ecx, ecx
mov edx, dword [0x44a8e8]
mov ebx, dword [esp + 8]
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x33079ccd
je 0x43d616
inc ecx
cmp eax, ecx
jne 0x43d600
jmp 0x43d645
mov ebx, dword [esp + 8]
jmp 0x43d645
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x43d645
lea ecx, [esp + 0x10]
push ecx
push dword [esp + 0x10]
push ebx
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 6
push eax
push dword [0x44a8ec]
call fcn.004390d0
add esp, 0x24
mov esi, eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x43d738
test esi, esi
js 0x43d738
test ebp, ebp
je 0x43d731
mov eax, dword [ebx + 0xc]
shr eax, 1
mov edx, dword [ecx]
cmp edx, eax
jb 0x43d66e
mov edx, eax
test edx, edx
je 0x43d72b
add edi, 0x10
mov eax, edx
and eax, 3
je 0x43d6c3
mov dword [esp + 0xc], edx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [edi]
xor ecx, ecx
test bx, bx
setne cl
lea edi, [edi + ecx*2]
mov word [ebp], bx
add ebp, 2
inc edx
cmp eax, edx
jne 0x43d690
mov ecx, dword [esp + 0xc]
mov eax, ecx
sub eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 8]
cmp edx, 4
jae 0x43d6d0
jmp 0x43d72b
mov eax, edx
cmp edx, 4
jb 0x43d72b
nop
nop
nop
nop
nop
nop
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [ebp], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [ebx + edx*2]
mov word [ebp + 2], cx
movzx ecx, word [ebx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [ebp + 4], cx
movzx edx, word [edi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebp + 6], dx
add ebp, 8
lea edi, [ebx + ecx*2]
add eax, 0xfffffffc
jne 0x43d6d0
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 8]
mov word [ebp], 0
mov eax, dword [ebx + 0xc]
shr eax, 1
mov dword [ecx], eax
push ebx
call fcn.00436020
add esp, 4
mov eax, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret