Function at 0x42daad
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov esi, ecx
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
jp 0x42dac3
jnp 0x42dac3
call 0x85874452
in eax, dx
mov ebp, dword [ecx + 0x44]
test ebp, ebp
mov dword [esp], edx
je 0x42db79
jp 0x42dad6
jnp 0x42dad6
call fcn.0042eb99
add byte [ecx], ch
out dx, eax
mov edi, 0x10
sub edi, ebp
jge 0x42dae2
jl 0x42dae2
call 0x4352a21f
clc
cmp edi, eax
cmovae edi, eax
test edx, edx
je 0x42db14
test edi, edi
jno 0x42daf2
jo 0x42daf2
call 0x4cd0226a
xor eax, 0x7cd23134
add edi, dword [ebp + 1]
je 0x42db3b
lea ecx, [ebp + esi + 0x34]
xor edx, edx
jl 0x42daff
jge 0x42daff
call 0x8a55df8d
and al, 0x11
mov al, byte [ebx + edx]
mov ah, byte [ecx + edx]
xor ah, al
mov byte [ecx + edx], al
mov byte [ebx + edx], ah
inc edx
cmp edi, edx
jne 0x42dafa
jmp 0x42db3b
test edi, edi
call 0x42db1c
add al, ch
je 0x42db3b
lea ecx, [ebp + esi + 0x34]
xor edx, edx
jle 0x42db2a
jg 0x42db2a
call 0x3255dfb8
add al, 0x11
mov al, byte [ebx + edx]
xor al, byte [ecx + edx]
mov byte [ebx + edx], al
mov byte [ecx + edx], al
inc edx
cmp edi, edx
jne 0x42db25
jo 0x42db40
jno 0x42db40
call 0xfdc6d845
adc byte [edi], cl
and bl, 0
add byte [eax], al
add ebp, edi
cmp ebp, 0x10
jb 0x42dc2e
jbe 0x42db50
ja 0x42db50
call 0x246747df
mov ebp, dword [esp + 0x24]
sub ebp, edi
add ebx, edi
mov eax, dword [esi]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x1c]
lea edx, [esi + 0x14]
lea edi, [esi + 0x34]
jp 0x42db6a
jnp 0x42db6a
call 0x5299ebd8
push 0x10
push edi
push edx
push eax
call ecx
mov eax, ebp
add esp, 0x10
mov edx, dword [esp]
mov dword [esp + 8], eax
je 0x42db82
jne 0x42db82
call 0xe7c6a30f
invalid
mov edi, eax
and edi, 0xfffffff0
xor ecx, ecx
test edx, edx
setne cl
mov edx, dword [esi]
mov ebp, dword [edx]
lea eax, [esi + 4]
mov ecx, dword [ebp + ecx*4 + 0x10]
lea ebp, [esi + 0x14]
jg 0x42dba1
jle 0x42dba1
call 0x89982efc
inc esp
and al, 0x10
push edi
push ebx
push ebp
mov dword [esp + 0x10], eax
push eax
push edx
call ecx
add esp, 0x14
mov ebp, dword [esp + 8]
and ebp, 0xf
je 0x42dc10
add ebx, edi
jle 0x42dbbf
jg 0x42dbbf
call 0x7f772250
add edi, dword [esi + 1]
lea eax, [esi + 0x34]
jg 0x42dbc7
jle 0x42dbc7
call 0x7eccdafc
cmp byte [ecx + 0x7e89347e], cl
inc eax
xor edi, edi
mov dword [esi + 0x38], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x40], edi
mov dword [esi + 0x3c], edi
mov ecx, dword [esi]
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
je 0x42dbe1
jne 0x42dbe1
call 0xff92ec4f
je 0x42dc0b
push 0x10
push eax
push dword [esp + 0xc]
push ecx
or al, 0x51
call edx
add esp, 0x10
cmp dword [esp], 0
je 0x42dc14
jnp 0x42dbf9
jp 0x42dbf9
call 0x8a7de087
dec esp
xor al, 0x30
ror dword [eax - 0x77cbc1bc], 0xc
cmp eax, dword [edi + 0x39]
mov al, byte [ebx + edi]
mov cl, byte [esi + edi + 0x34]
xor cl, al
mov byte [esi + edi + 0x34], al
mov byte [ebx + edi], cl
inc edi
cmp ebp, edi
std
jne 0x42dbf4
jmp 0x42dc2e
xor ebp, ebp
jmp 0x42dc2e
xor eax, eax
jo 0x42dc1b
jno 0x42dc1b
call 0x3245e8a9
dec esp
push es
xor al, 0x88
or al, 3
mov cl, byte [ebx + eax]
xor cl, byte [esi + eax + 0x34]
mov byte [ebx + eax], cl
mov byte [esi + eax + 0x34], cl
inc eax
cmp ebp, eax
jne 0x42dc16
js 0x42dc33
jns 0x42dc33
call 0x83874ac0
les ecx, [esi + ebx*2]
mov dword [esi + 0x44], ebp
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret