Function at 0x43a300
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [esp + 0x14], ecx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xc], 0
mov dword [esp], 0x7c7d7a7b
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor eax, eax
nop
nop
nop
nop
movzx edi, byte [esp + eax]
lea edx, [eax + 0xea]
lea ecx, [edi + edi]
not ecx
add ecx, edi
mov esi, edi
and esi, 5
mov ebx, ecx
and ebx, 0xfa
or ebx, esi
xor ebx, edi
xor ebx, 0xfa
not edi
or edi, ebx
mov esi, edi
not esi
or esi, edx
add esi, edi
mov edi, 0xfe
sub edi, esi
or ecx, edx
and ecx, edi
mov dl, 0x6d
sub dl, cl
mov byte [esp + eax], dl
mov ecx, eax
and ecx, 1
or eax, 0xd8742c21
add eax, ecx
add eax, 0x278bd3e0
cmp eax, 7
jb 0x43a330
mov edi, dword [esp]
mov eax, dword [0x44da9c]
test eax, eax
je 0x43a3d6
xor ecx, ecx
mov edx, dword [0x44daa0]
cmp dword [edx + ecx*8], 0x9abdb589
je 0x43a3b0
inc ecx
cmp eax, ecx
jne 0x43a3a0
jmp 0x43a3d6
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x43a3d6
lea ecx, [esp + 0xc]
push ecx
push 0
push 0
push 5
push 4
push eax
push dword [0x44daa4]
call fcn.0043e1f0
add esp, 0x1c
mov edi, eax
mov dword [esp], 0x5392919c
mov byte [esp + 4], 0
mov edx, 0xc47e44a4
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x3b81bb5c]
mov ebx, eax
mov esi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xad
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, 0xcc
mov byte [esp + edx + 0x3b81bb5c], al
inc edx
cmp edx, 0xc47e44a9
jne 0x43a3f0
cmp edi, dword [esp]
jne 0x43a599
push dword [esp + 0xc]
call fcn.0043a170
add esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp], 0x7c7d7a7b
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor edx, edx
nop
nop
nop
movzx esi, byte [esp + edx]
lea edi, [edx + 0xea]
lea eax, [esi + esi]
not eax
add eax, esi
mov ebx, esi
and ebx, 5
mov ecx, eax
and ecx, 0xfa
or ecx, ebx
xor ecx, esi
xor ecx, 0xfa
not esi
or esi, ecx
mov ecx, esi
not ecx
or ecx, edi
add ecx, esi
mov esi, 0xfe
sub esi, ecx
or eax, edi
and eax, esi
mov cl, 0x6d
sub cl, al
mov byte [esp + edx], cl
mov eax, edx
and eax, 1
or edx, 0xd8742c21
add edx, eax
add edx, 0x278bd3e0
cmp edx, 7
jb 0x43a470
mov edi, dword [esp]
mov ecx, dword [0x44da9c]
test ecx, ecx
je 0x43a528
xor edx, edx
mov esi, dword [0x44daa0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x43a500
inc edx
cmp ecx, edx
jne 0x43a4f0
jmp 0x43a528
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, edi
je 0x43a528
push 0
push dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
push 5
push 4
push ecx
push dword [0x44daa4]
call fcn.0043e1f0
add esp, 0x1c
mov edi, eax
test edi, edi
js 0x43a58d
mov ecx, dword [esp + 8]
mov esi, dword [ecx]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ecx + esi + 0x3c]
add ecx, esi
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [edx + esi]
movzx ebx, word [ebp + esi]
test di, di
je 0x43a566
add esi, 2
cmp di, bx
je 0x43a550
cmp di, bx
je 0x43a578
mov esi, dword [ecx]
test esi, esi
jne 0x43a540
mov edi, 0xc0000225
jmp 0x43a58d
mov eax, dword [ecx + 0x44]
mov edx, dword [esp + 0x14]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xdc]
mov dword [edx + 0xc], eax
xor edi, edi
push dword [esp + 8]
call fcn.0043a200
add esp, 4
mov eax, edi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret 4