Function at 0x43fc70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov dword [esp + 8], ecx
cmp dword [ecx + 8], 0
je 0x43fd00
mov eax, dword [esp + 8]
mov ecx, dword [eax]
test ecx, ecx
je 0x43fd00
mov dword [esp], 0x20272625
mov byte [esp + 4], 0
xor eax, eax
xor edx, edx
movzx esi, byte [esp + edx]
mov edi, eax
and edi, 0xa
mov ebx, edx
xor ebx, 0x76c0655d
add edi, ebx
add edi, 0x382159dc
xor edi, esi
mov esi, edi
and esi, 0x62
xor edi, 0xe2
lea ebx, [edi + esi*2]
inc bl
mov byte [esp + edx], bl
inc edx
add eax, 2
cmp edx, 5
jne 0x43fca0
mov eax, dword [esp]
mov ebx, dword [0x451b2c]
test ebx, ebx
je 0x43fd66
xor edi, edi
mov esi, dword [0x451b30]
cmp dword [esi + edi*8], 0xdef797a3
je 0x43fd49
inc edi
cmp ebx, edi
jne 0x43fcf0
jmp 0x43fd66
mov dword [esp], 0x53929198
mov dword [esp + 4], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
xor esi, 0xdc
mov edx, eax
and edx, 6
sub edx, esi
xor dl, byte [esp + ecx]
add dl, 0x4c
mov byte [esp + ecx], dl
inc ecx
add eax, 2
cmp ecx, 8
jne 0x43fd20
mov eax, dword [esp]
jmp 0x43fefb
mov esi, dword [esi + edi*8 + 4]
cmp esi, eax
je 0x43fd66
push dword [ebp + 8]
push ecx
push 2
push dword [0x451b34]
push esi
call fcn.00442050
add esp, 0x14
mov edi, dword [ebp + 0xc]
cmp edi, 1
mov esi, dword [ebp + 0x10]
mov ecx, esi
sbb ecx, 0
jl 0x43fe41
cmp eax, 0xc000010a
jne 0x43fe41
mov ecx, 0xffffd8f0
mov eax, edi
mul ecx
sub edx, edi
imul ecx, esi, 0xffffd8f0
add ecx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 8]
mov edx, dword [eax]
mov dword [esp], 0x20272625
mov byte [esp + 4], 0
xor eax, eax
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + esi]
mov edi, eax
and edi, 0xa
mov ebx, esi
xor ebx, 0x76c0655d
add edi, ebx
add edi, 0x382159dc
xor edi, ecx
mov ecx, edi
and ecx, 0x62
xor edi, 0xe2
lea ecx, [edi + ecx*2]
inc cl
mov byte [esp + esi], cl
inc esi
add eax, 2
cmp esi, 5
jne 0x43fdc0
mov eax, dword [esp]
mov esi, dword [0x451b2c]
test esi, esi
je 0x43fe41
xor edi, edi
mov ebx, dword [0x451b30]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x53f09cfa
je 0x43fe20
inc edi
cmp esi, edi
jne 0x43fe10
jmp 0x43fe41
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
je 0x43fe41
lea eax, [esp + 0x10]
push eax
push 0
push edx
push 3
push dword [0x451b34]
push esi
call fcn.00442050
add esp, 0x18
test eax, eax
js 0x43fefb
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x43fefb
mov dword [esp + 0xc], ecx
mov dword [esp], 0x20272625
mov byte [esp + 4], 0
xor esi, esi
xor edx, edx
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx]
mov ebx, esi
and ebx, 0xa
mov edi, edx
xor edi, 0x76c0655d
add edi, ebx
add edi, 0x382159dc
xor edi, ecx
mov ecx, edi
and ecx, 0x62
xor edi, 0xe2
lea ecx, [edi + ecx*2]
inc cl
mov byte [esp + edx], cl
inc edx
add esi, 2
cmp edx, 5
jne 0x43fe70
mov esi, dword [0x451b2c]
test esi, esi
je 0x43fef1
mov ecx, dword [esp]
xor ebx, ebx
mov edi, dword [0x451b30]
nop
nop
nop
nop
cmp dword [edi + ebx*8], 0x7e776f1
je 0x43fed0
inc ebx
cmp esi, ebx
jne 0x43fec0
jmp 0x43fef1
mov esi, dword [edi + ebx*8 + 4]
cmp esi, ecx
je 0x43fef1
push dword [esp + 0xc]
push 1
push dword [0x451b34]
push esi
mov edi, eax
call fcn.00442050
mov eax, edi
add esp, 0x10
mov ecx, dword [esp + 8]
mov dword [ecx], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc