Function at 0x43f894
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov dword [esp + 4], 0xd1cecffc
mov word [esp + 8], 0
mov esi, 0x4d
nop
nop
nop
nop
nop
movzx ebx, byte [esp + esi - 0x49]
mov edx, ebx
and edx, esi
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0x5d
mul cl
mov ecx, eax
add cl, bl
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0x7f
mov byte [esp + esi - 0x49], al
inc esi
cmp esi, 0x53
jne case.default.0x43f73b
mov eax, dword [esp + 4]
mov eax, dword fs:[eax]
xor ecx, ecx
cmp dword [esp + 0x24], 0
sete cl
jmp dword [ecx*4 + 0x44a6e0]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov dword [esp], 0
mov esi, dword [edx]
xor eax, eax
cmp esi, edx
setne al
mov dword [esp + 0xc], edx
jmp dword [eax*4 + 0x44a6e8]
mov ebx, dword [esi + 0x30]
xor ecx, ecx
test ebx, ebx
setne cl
mov edi, 1
jmp dword [ecx*4 + 0x44a6f0]
mov ebp, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
movzx edx, word [ebp]
lea ecx, [edx - 0x41]
cmp cx, 0x1a
jae 0x43f7a0
or edx, 0x20
movzx ecx, word [ebx]
lea eax, [ecx - 0x41]
cmp ax, 0x1a
jae 0x43f7af
or ecx, 0x20
test dx, dx
je 0x43f7bf
add ebx, 2
add ebp, 2
cmp dx, cx
je 0x43f790
movzx eax, cx
movzx ecx, dx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
xor ecx, ecx
cmp eax, edx
sete cl
mov edx, dword [esp + 0xc]
jmp dword [ecx*4 + 0x44a6f8]
mov eax, dword [esi + 0x18]
mov dword [esp], eax
xor edi, edi
jmp dword [edi*4 + 0x44a700]
mov esi, dword [esi]
xor ecx, ecx
cmp esi, edx
setne cl
jmp dword [ecx*4 + 0x44a6e8]
mov eax, dword [eax + 8]
mov dword [esp], eax
mov eax, dword [esp]
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
jmp dword [0x44a710]
mov ecx, dword [eax + 8]
jmp dword [0x44a710]
mov dword [esp], 0x3736dfed
xor eax, eax
nop
nop
nop
mov edx, eax
add dl, 0xf6
xor dl, byte [esp + eax]
add dl, 0x32
mov byte [esp + eax], dl
inc eax
cmp eax, 4
jne 0x43f8a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [ecx]
mov dword [esp], 0x3736dfed
xor edx, edx
nop
nop
nop
nop
mov ebx, edx
add bl, 0xf6
xor bl, byte [esp + edx]
add bl, 0x32
mov byte [esp + edx], bl
inc edx
cmp edx, 4
jne 0x43f8d0
jmp dword [0x44a718]
xor ebx, ebx
cmp dword [esp], eax
sete bl
xor edx, edx
jmp dword [ebx*4 + 0x44a720]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x44a738]
jmp 0x43f9a6
mov eax, dword [ecx + 0x3c]
mov ebp, dword [ecx + eax]
mov dword [esp], 0xf1feb8ac
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + esi]
lea edi, [esi + 0x4da54755]
and edi, ebx
add edi, edi
neg edi
lea edx, [esi + edi]
add edx, 0x4da54755
add dl, bl
add dl, 0x57
mov byte [esp + esi], dl
mov edx, esi
and edx, 1
xor esi, 1
lea esi, [esi + edx*2]
cmp esi, 7
jb case.default.0x43f969
xor edx, edx
cmp ebp, dword [esp]
sete dl
jmp dword [edx*4 + 0x44a728]
xor edx, edx
mov ecx, 1
jmp dword [ecx*4 + 0x44a730]
mov eax, dword [ecx + eax + 0x50]
mov edx, 1
xor ecx, ecx
jmp dword [ecx*4 + 0x44a730]
xor ecx, ecx
xor edx, edx
test ecx, 0
sete dl
jmp dword [edx*4 + 0x44a738]
xor eax, eax
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [edx]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x44a748]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [edx]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x44a748]
mov eax, dword [esi + 0x30]
xor edi, edi
jmp dword [edi*4 + 0x44a758]
mov esi, dword [esi]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x44a748]
xor ebx, ebx
cmp dword [esi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x44a750]
mov edi, 1
jmp dword [edi*4 + 0x44a758]
add esp, 8
pop esi
pop edi
pop ebx
ret
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [edx]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x44a768]
mov eax, dword [esi + 0x28]
xor edi, edi
jmp dword [edi*4 + 0x44a778]
mov esi, dword [esi]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x44a768]
xor ebx, ebx
cmp dword [esi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x44a770]
mov edi, 1
jmp dword [edi*4 + 0x44a778]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
add esp, 8
pop esi
pop edi
pop ebx
ret
test dword [ebx], case.0x43f73b.0
push es
clc
inc ebx
add byte [eax - 9], dh
inc ebx
add cl, ch
test dword [ebx], case.0x43f73b.4
jmp 0xe144eaf4