Function at 0x419990
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x430
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x4199b0
sar esi, 1
lea edi, [esp + 0x80]
push edi
push 0
push 0
push esi
push eax
push 0
call dword [0x44d058]
mov dword [esp + 0x108], 0x793a3bd1
mov dword [esp + 0x10c], 0
xor ecx, ecx
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x4b
xor dl, byte [esp + ecx + 0x108]
add dl, 0x89
mov byte [esp + ecx + 0x108], dl
mov edx, ecx
not edx
or edx, 1
add edx, ecx
xor ecx, 1
lea ecx, [ecx + edx*2]
add ecx, 2
cmp ecx, 8
jb case.default.0x419a2b
xor ecx, ecx
cmp eax, dword [esp + 0x108]
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x4468c4]
mov ebx, dword [esp + 0x80]
test ebx, ebx
jns 0x419a44
mov eax, 0xffffffff
jmp 0x419a47
lea eax, [ebx + ebx]
push eax
call fcn.004082b0
add esp, 4
push edi
push ebx
mov ebx, eax
push eax
push esi
mov eax, dword [ebp + 0xc]
push dword [eax + 4]
push 0
call dword [0x44d058]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4468cc]
xor eax, eax
jmp dword [0x4468e4]
push ebx
jmp 0x41a045
mov eax, dword [esp + 0x80]
mov ecx, eax
add ecx, 0xd
jns 0x419a93
mov eax, 0xffffffff
jmp 0x419a9a
lea eax, [eax*2 + 0x1a]
push eax
call fcn.004082b0
add esp, 4
mov esi, eax
mov dword [esp + 0x108], 0x83ce81dc
mov dword [esp + 0x10c], 0x87358525
mov dword [esp + 0x110], 0x8bea893c
mov dword [esp + 0x114], 0x8f2b8dda
mov dword [esp + 0x118], 0x93219122
mov dword [esp + 0x11c], 0x9739953d
mov dword [esp + 0x120], 0x9b9a9936
mov word [esp + 0x124], 0
mov byte [esp + 0x126], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x108]
mov edi, 0x21a4c4df
sub edi, eax
xor edi, 0x19
mov ecx, eax
and ecx, 0x19
or ecx, edi
and ecx, 0xdf
xor ecx, edx
xor ecx, 0x19
mov dl, 0x5f
sub dl, cl
mov byte [esp + eax + 0x108], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x1f
jb 0x419b10
movzx ecx, word [ebx]
mov eax, esi
test cx, cx
je 0x419b71
lea edx, [ebx + 2]
mov eax, esi
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x419b60
mov word [eax], 0
movzx ecx, word [esp + 0x108]
test cx, cx
je 0x419ba3
mov dword [esp + 0x20], ebx
lea edx, [esp + 0x10a]
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x419b90
jmp 0x419ba7
mov dword [esp + 0x20], ebx
mov word [eax], 0
lea eax, [esp + 0x290]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.00440480
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4468ec]
call fcn.004082c0
add esp, 4
xor eax, eax
jmp 0x41d58b
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
in eax, dx
inc ecx
add byte [0x110041f0], cl
inc ecx
add byte [ebx + esi*8], ah
inc ecx
add byte [edx], ch
inc ecx
add byte [edi], dh
inc ecx
add byte [edi], dh
inc ecx
add byte [eax + 0x200041ec], ah
in eax, dx
inc ecx
add byte [edi - 9], bl
inc ecx
add byte [edi - 9], dh
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [edi - 9], dh
inc ecx
add byte [esi - 0x4ffbe09], al
stc
inc ecx
add byte [esi], ah
cli
inc ecx
add byte [ecx], al
cli
inc ecx
add byte [ecx], al
cli
inc ecx
add byte [ecx], al
cli
inc ecx
add byte [edi], al
cli
inc ecx
add byte [eax], dl
cli
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [0x320041fa], bl
lcall 0x41, 0xd58b0041
jo 0x446868
inc ecx
add byte [esi - 0x66], bh
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x66], dh
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x66], bh
inc ecx
add byte [ebx + 0x2c0041d5], cl
sahf
inc ecx
add dl, dl
wait
inc ecx
add byte [ebp - 0xbffbe63], cl
wait
inc ecx
add byte [esi - 0x63], bh
inc ecx
add byte [edx], ah
pushfd
inc ecx
add byte [edi - 0x63], ch
inc ecx
add byte [esi - 0x63], bh
inc ecx
add byte [ebp + ebx*4 - 0x6272ffbf], al
inc ecx
add byte [edx], dh
sahf
inc ecx
add byte [ebx], bh
sahf
inc ecx
add byte [edi + ebx*4 - 0x604fffbf], cl
inc ecx
add byte [edx + 0x3e00419f], dl
mov al, byte [0xa0440041]
inc ecx
add byte [ebp - 0x60], cl
inc ecx
add byte [eax - 0x4fffbe61], dh
lahf
inc ecx
add byte [esi - 0x4fffbe61], dh
lahf
inc ecx
add byte [edi + ebx*4 - 0x603affbf], bh
inc ecx
add byte [edi - 0x60], bh
inc ecx
add al, bh
lahf
inc ecx
add byte [eax], ch
inc ecx
add byte [eax + 0x41], dl
add byte [esi - 0x60], dh
inc ecx
add byte [edi - 0x60], bh
inc ecx
add dl, bl
mov dword [0xa2000041], eax
inc ecx
add byte [edx + 0x2a0041a3], bh
test eax, 0xaba60041
inc ecx
add byte [edi - 0x31ffbe55], ch
mov dword [0xa3da0041], eax
inc ecx
add byte [edi - 0x50ffbe5c], bh
movsb byte es:[edi], byte [esi]
inc ecx
add byte [edi + 0x620041a4], bh
test eax, 0xa4bf0041
inc ecx
add byte [ebx - 0x57], dh
inc ecx
add byte [ecx - 0x56], al
inc ecx
add ch, dl
stosd dword es:[edi], eax
inc ecx
add byte [eax + esi*4], cl
inc ecx
add al, ch
scasb al, byte es:[edi]
inc ecx
add bh, bh
scasd eax, dword es:[edi]
inc ecx
add byte [eax + esi*4], cl
inc ecx
add byte [ecx + 0x600041b5], dl
mov al, 0x41
add byte [eax - 0x50], ah
inc ecx
add byte [ebp - 0x50], dh
inc ecx
add byte [edi - 0x7effbe4b], ah
mov al, 0x41
add byte [edi - 0x6cffbe4b], ah
mov al, 0x41
add byte [esi - 0x71ffbe4f], al
mov cl, 0x41
add byte [ecx], cl
mov dl, 0x41
add byte [esi], cl
mov dl, 0x41
add byte [edi], dh
mov bl, 0x41
add byte [edx - 0x4d], al
inc ecx
add byte [ebx], cl
mov ah, 0x41
add byte [edx], bl
mov ah, 0x41
add byte [edi - 0x4b], ah
inc ecx
add byte [edi - 0x46ffbe4b], ah
mov ch, 0x41
add bl, dl
mov ch, 0x41
add byte [ecx], dl
mov ecx, 0xb92a0041
inc ecx
add byte [ecx + edi*4 - 0x45efffbf], bl
inc ecx
add byte [edx], bl
mov edx, 0xba3a0041
inc ecx
add bl, dh
mov esp, 0xba6a0041
inc ecx
add bl, dh
mov esp, 0xd4370041
inc ecx
add byte [edi + 0x2c0041d4], bl
aad 0x41
add byte [0x550041d5], dh
aad 0x41
add dh, al
mov ch, 0x41
add byte [ecx], al
mov ebp, 0xd1d10041
inc ecx
add byte [ecx - 0x43], dl
inc ecx
add bh, dl
rol dword [ecx], 1
jecxz 0x446a23
inc ecx
add byte [edx - 0x32], ch
inc ecx
add bh, dl
mov edi, 0xc0860041
inc ecx
add ch, bl
mov edi, 0xc11d0041
inc ecx
add byte [esi - 0x21ffbe40], al
int 0x41
add byte [ecx], ch
rol dword [ecx], 0x2f
rol dword [ecx], 0xe6
rol dword [ecx], 0xe6
rol dword [ecx], 0xb0
ret 0x41