Function at 0x43d105
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, dword [esp + 0x2c]
movzx eax, word [esi]
mov dword [esp], 0x5a59f2da
mov ecx, 0x1f
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x1f]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x88
mov byte [esp + ecx - 0x1f], dl
inc ecx
cmp ecx, 0x23
jne case.default.0x43ce49
xor ecx, ecx
cmp dword [esp], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x446e74]
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + ecx]
mov dword [esp + 8], 0x101f5b4d
lea edx, [esp + 8]
mov edi, 0x4a
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edx]
lea ebp, [edi - 0x62ba8b00]
or ebp, ebx
and ebx, edi
not ebp
or ebp, ebx
mov ebx, ebp
and ebx, 0x57
xor ebp, 0x57
lea ebx, [ebx*2]
add ebx, ebp
inc bl
mov byte [edx], bl
inc edx
dec edi
cmp edi, 0x46
jne case.default.0x43cea8
xor edx, edx
cmp eax, dword [esp + 8]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x446e7c]
mov ebp, dword [esi + ecx + 0x78]
mov edx, dword [esi + ecx + 0x7c]
test edx, edx
sete al
test ebp, ebp
sete cl
or cl, al
movzx ecx, cl
xor eax, eax
jmp dword [ecx*4 + 0x446e84]
mov dword [esp + 0xc], edx
mov ebx, dword [esi + ebp + 0x20]
add ebx, esi
mov eax, dword [esi + ebp + 0x24]
add eax, esi
mov dword [esp + 0x14], eax
mov eax, dword [esi + ebp + 0x1c]
add eax, esi
mov dword [esp + 0x10], eax
xor edi, edi
xor ecx, ecx
cmp edi, dword [esi + ebp + 0x18]
setb cl
mov dword [esp + 4], 1
jmp dword [ecx*4 + 0x446e8c]
mov eax, dword [ebx + edi*4]
add eax, esi
push 0x3228f3d1
push eax
call fcn.0043cfd0
add esp, 8
xor ecx, ecx
cmp eax, dword [esp + 0x30]
setne cl
jmp dword [ecx*4 + 0x446e94]
jmp dword [0x446ec4]
inc edi
xor ecx, ecx
cmp edi, dword [esi + ebp + 0x18]
setb cl
jmp dword [ecx*4 + 0x446e8c]
mov eax, dword [esp + 0x14]
movzx eax, word [eax + edi*2]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + eax*4]
xor edx, edx
mov eax, ecx
sub eax, ebp
setae dl
jmp dword [edx*4 + 0x446eac]
xor edx, edx
cmp eax, dword [esp + 0xc]
setb dl
jmp dword [edx*4 + 0x446eb4]
add esi, ecx
mov dword [esp + 4], 0
mov eax, esi
mov ecx, dword [esp + 4]
jmp dword [ecx*4 + 0x446ecc]
xor eax, eax
mov ecx, dword [case.0x43cea8.2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [case.0x43cea8.30]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
mov esi, esp
jmp ecx
push eax
mov dword [ebp - 0x18], esp
movzx eax, word [eax]
mov dword [ebp - 0x14], eax
mov dword [esi], 0x86856e7e
xor edx, edx
xor edi, edi
mov dword [ebp - 0x10], esi
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
movzx esi, byte [eax + edi]
mov ecx, edi
xor ecx, 0x9d2565b
add ecx, edx
mov ebx, esi
and ebx, 0x69
or ebx, 0x7221890
and esi, 0xffffff96
xor esi, ebx
mov ebx, ecx
xor ebx, 0x96
mov eax, esi
xor eax, 0xf9
or eax, ebx
xor esi, 6
xor ecx, 0x69
or ecx, esi
mov esi, dword [ebp - 0x10]
and ecx, eax
mov al, 0x27
sub al, cl
mov byte [esi + edi], al
inc edi
add edx, 2
cmp edi, 4
jne case.default.0x43d17b
xor ecx, ecx
mov eax, dword [ebp - 0x14]
cmp dword [esi], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x446f04]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
lea ecx, [edx + eax]
mov eax, dword [edx + eax]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
mov dword [eax], 0xf4f33721
mov edx, 0x39
mov edi, 0xee930bc6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx - 0x39]
mov esi, edi
or esi, ebx
not ebx
or ebx, edx
and ebx, esi
mov eax, ebx
not eax
and eax, 0x37
mov esi, ebx
xor esi, 0xc8
lea eax, [esi + eax*2]
and ebx, 1
xor eax, 1
lea eax, [eax + ebx*2]
mov esi, dword [ebp - 0x18]
mov byte [esi + edx - 0x39], al
mov eax, dword [ebp - 0x18]
inc edx
dec edi
cmp edx, 0x3d
jne case.default.0x43d1f7
mov eax, dword [eax]
xor edx, edx
cmp dword [ebp - 0x10], eax
setne dl
xor eax, eax
jmp dword [edx*4 + 0x446f0c]
movzx eax, word [ecx + 0x14]
lea edx, [ecx + eax]
add edx, 0x18
movzx esi, word [ecx + 6]
xor ecx, ecx
xor eax, eax
mov word [ebp - 0x18], si
cmp cx, si
setb al
mov dword [ebp - 0x14], 1
jmp dword [eax*4 + 0x446f14]
mov esi, 8
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x10], edx
mov eax, edx
nop
nop
nop
sub esi, 1
jb 0x43d260
movzx edx, byte [edi]
inc edi
movzx ebx, byte [eax]
inc eax
cmp dl, bl
je 0x43d240
sub edx, ebx
jmp 0x43d262
xor edx, edx
xor eax, eax
test edx, edx
sete al
jmp dword [eax*4 + 0x446f1c]
inc ecx
mov edx, dword [ebp - 0x10]
add edx, 0x28
xor eax, eax
cmp cx, word [ebp - 0x18]
setb al
jmp dword [eax*4 + 0x446f14]
xor eax, eax
mov ecx, dword [ebp + 0x10]
test ecx, ecx
setne al
mov edx, dword [ebp - 0x10]
jmp dword [eax*4 + 0x446f24]
xor eax, eax
cmp dword [ebp + 0x14], 0
setne al
mov dword [ebp - 0x14], 0
jmp dword [eax*4 + 0x446f2c]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0xc]
mov dword [ecx], eax
xor eax, eax
cmp dword [ebp + 0x14], 0
setne al
mov dword [ebp - 0x14], 0
jmp dword [eax*4 + 0x446f2c]
jmp dword [0x446f38]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
nop
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov dword [ebp - 0x14], 0
jmp dword [0x446f3c]
mov al, 1
mov ecx, dword [ebp - 0x14]
jmp dword [ecx*4 + 0x446f44]
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
into
inc ebx
add dl, al
iretd
into
inc ebx
add byte [edx - 0x30ffbc31], dh
into
inc ebx
add byte [edi - 0x6dffbc31], bl
iretd