Function at 0x405e00
Capabilities:
Encode data using xor

Disassembly:
add eax, dword [ecx + 0x108c4]
seto byte [edx]
cmp dword [eax], ebx
nop
add bl, byte [eax]
jne 0x405d97
add al, 1
add eax, eax
sub eax, 0x200290f0
seto byte [edx]
and byte [esi + 0xf], ah
nop
add ah, byte [eax]
seto byte [edx]
and byte [esi + 0xf], ah
nop
add byte [ecx], al
add byte [ebp + 3], al
mov esi, dword [esp + 0x10c]
fnop
nop
add bh, byte [edi]
lodsd eax, dword [esi]
nop
add eax, 0x90660302
seto byte [edx]
sbb byte [ebx + 0x110249c], cl
add byte [eax], al
nop
add bl, byte [eax]
cmp dword [eax], ebx
nop
add bl, byte [eax]
jne 0x405de0
add al, 1
add edx, eax
sub eax, 0x200290f0
seto byte [edx]
and byte [esi + 0xf], ah
nop
add ah, byte [eax]
seto byte [edx]
and byte [esi + 0xf], ah
nop
add byte [ecx], al
add byte [0x249c8b03], bh
adc al, 1
add byte [eax], al
nop
add eax, 0x90660302
nop
seto byte [edx]
sbb byte [ecx], bh
sbb byte [eax + 0x66030205], dl
nop
seto byte [edx]
sbb byte [ebp - 0x70], dh
add al, 1
add eax, eax
sub eax, 0x200290f0
seto byte [edx]
and byte [esi + 0xf], ah
nop
add ah, byte [eax]
seto byte [edx]
and byte [esi + 0xf], ah
nop
add byte [eax], al
add byte [eax + 0x3f], bh
add dword [eax], eax
add dword [eax], eax
add dword [eax], eax
push es
add byte [ecx], ah
and ecx, dword [eax + 0x53]
push esp
push edx
cmp dl, byte [eax + 0x57]
push ebx
cmp dl, byte [edi + 0x69]
outsb dx, byte [esi]
xor esi, dword [edx]
das
inc esi
popal
jb 0x405f33
imul esi, dword [esi + ebp + 0x41], 0x21314b4b
dec ebp
push esp
inc edx
add byte [ecx], al
add byte [eax], ah
add edi, edi
mov eax, 5
mov edx, dword [ebp + 8]
add edx, eax
jae 0x405e7b
add dword [ecx], eax
call 0x80446082
xor dl, byte [eax + 0x3d400101]
nop
add dword [esi*2 + 0x10090], eax
sbb eax, dword [ebx]
lea edx, [eax + ebx]
mov dl, byte [edx]
nop
add al, byte [edx]
xor dl, 0x90
add dword [ecx], eax
lea ecx, [eax + ebx]
mov byte [ecx], dl
inc eax
cmp eax, 0x20190
add byte [eax + 0x41000100], dl
add esi, dword [eax]
add bh, bh
inc ebp
nop
add dword [ecx], eax
inc dword [ebp - 0x70]
add dword [ecx], eax
inc ecx
cmp dword [ebp - 0xc], 0x20190
add al, byte [eax]
add byte [ebp - 0x70], dh
add dword [ecx], eax
add ebx, 0x89040190
pop ebp
nop
add dword [ecx], eax
call dword [eax + 0x1b900101]
add eax, 0x2f0a90
add edi, edi
nop
add dword [ecx], eax
nop
sbb eax, dword [0x2f0a90]
mov al, byte [ecx]
mov byte [ebp - 0x70], al
add dword [ecx], eax
mov edx, dword [ebp - 0x70]
sbb eax, dword [eax]
mov al, byte [ebp - 0x70]
sbb ecx, dword [ecx]
nop
add byte [ecx], al
add byte [0x31c93103], bh
rol byte [ecx + 0x20190c2], cl
add byte [eax], al
nop
add ch, byte [edi]
xor byte [ecx + eax], 0x90
add al, byte [0x75d13941]
nop
add dword [ecx], eax
add eax, 0x20190
add bh, bh
loopne 0x405f1a
or bl, byte [edi]
movzx edx, word [eax - 0x6f5cfafe]
add dword [eax + edx*4], eax
nop
nop
add cl, byte [edx]
nop
add bl, byte [edi]
loopne 0x405fa7
seto byte [eax]
add dword [eax], eax
sub eax, 0x1348003
out 0xff, al
inc ebp
cld
xor byte [ecx + eax], 0xe6
inc dword [ebp - 4]
inc ecx
cmp ecx, edx
jne 0x405f43
add dword [ecx], eax
add eax, 0x20190
add bh, bh
nop
or bh, byte [edi]
add byte [ebx + 0x117400f9], al
cmp dword [ebp - 4], 4
jne 0x405fd6
mov dword [ebp - 4], 0
nop
add byte [ecx], al
add byte [eax], bl
add dword [ebx + 0x1e283d0], ecx
sbb byte [ecx], al
mov edx, eax
and edx, 1
test edx, edx
jne 0x405fe8
mov edx, ebx
add edx, eax
xor byte [edx], 0x2f
inc eax
cmp eax, 0x10e83
jne 0x405fd8
add byte [eax], al
js 0x406033
add dword [eax], eax
add al, byte [eax]
add al, byte [eax]
push es
add byte [ecx], ah
and eax, dword [ecx + 0x4c]
inc esi
cmp bl, byte [ecx + 0x32]
push esi
cmp al, byte [esi + 0x6c]
outsd dx, dword [esi]
jb 0x406074
popal
outsb dx, byte [esi]
pop edi
push edx
outsd dx, dword [esi]
je 0x40607a
das
dec edi
imul ebp, dword [edx + edx*2 + 0x69], 0x47525f67
inc esp
outsd dx, dword [esi]
outsd dx, dword [esi]
jb 0x406080
inc edi
outsb dx, byte gs:[esi]
xor dword [eax], eax
add al, byte [eax]
sbb al, 3
arpl word [ebp + 0x64], bp
and al, 0
add byte [eax], al
add byte [edx - 0x70], dh
nop
add al, 7
add dword [eax], eax
jne 0x4060aa
insb byte es:[edi], dx
outsd dx, dword [esi]
popal
and al, 0x90
or bl, byte [eax]
add byte [eax], al
nop
add byte [edx], al
add byte [ecx], ah
add esp, dword [ebx + 0x61]
outsb dx, byte [esi]
daa
je 0x406070
outsd dx, dword [esi]
jo 0x4060b8
outsb dx, byte [esi]
and byte [esi + 0x69], ah
insb byte es:[edi], dx
cmp ah, byte gs:[eax]
nop
add al, 7
add dword [eax], eax
outsd dx, dword fs:[esi]
ja 0x4060d2
insb byte es:[edi], dx
outsd dx, dword [esi]
popal
and al, 0x90
add byte [ecx], al
add byte [edx], dh
add ecx, dword [ebp + 0x79]
dec esi
jns 0x4060c0
popal
je 0x4060de
imul esi, dword [esi + 0x65], 0x75646f4d
insb byte es:[edi], dx
jbe 0x4060dc
dec ebp
outsd dx, dword [esi]
jne 0x4060e8
jne 0x4060e8
insb byte es:[edi], dx
insb byte es:[edi], dx
nop
sbb dword [ecx], eax
or dword [ecx + 0x2d], esp
jp 0x4060ca
sub eax, 0x392d305a
nop
or dword [ecx], eax
add byte [eax + 0x61090119], dl
sub eax, 0x5a2d417a
xor byte [0x1009039], ch
add byte [ebx + eax], ch
push edx
inc edi
push ebx
inc ebp
push ebx
push ebx
dec ecx
dec edi
dec esi
dec ecx
inc esp
cmp eax, 0x9011990
popal
sub eax, 0x5a2d417a
xor byte [0x1099039], ch
inc ecx
sub eax, 0x392d305a
nop
or dword [ecx], eax
add dword [eax], eax
nop
sbb dword [ecx], eax
or dword [ecx + 0x2d], esp
jp 0x40610b
add byte [eax + 0x61090119], dl
sub eax, 0x5a2d417a
xor byte [0x1009039], ch
sub eax, 0x392d305a
nop
add byte [ecx], al
add byte [ecx], ch
add esp, dword [edi + ebp*2 + 0x77]
outsb dx, byte [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
popal
and al, 0x90
nop
sbb dword [ecx], eax
or dword [ecx + 0x2d], esp
jp 0x406127
sub eax, 0x392d305a
nop
or dword [ecx], eax
xor byte [0x1099039], ch
add byte [eax + 0x61090119], dl
sub eax, 0x5a2d417a
xor byte [0x1009039], ch
add byte [ecx], dh
add ebp, dword [esi]
aas
inc ecx
push esi
inc ebx
dec eax
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
push edi
outsd dx, dword [esi]
jb 0x40617c
inc eax
inc eax
nop
sbb dword [ecx], eax
or dword [ecx + 0x2d], esp
jp 0x40615c
sub eax, 0x392d305a
nop
or dword [ecx], eax
add byte [eax + 0x61090119], dl
sub eax, 0x5a2d417a
xor byte [0x9039], ch
or dword [ecx + 0x2d], esp
jp 0x40616d
sub eax, 0x392d305a
nop
add byte [eax], al
add byte [eax + 0x3f], bh
add dword [eax], eax
add al, byte [eax]
add al, byte [eax]
push es
add byte [ecx], ah
and esp, dword [edi + ebp*2 + 0x5f]
js 0x4061af
popal
jne 0x4061bd
je 0x4061b5
jbe 0x4061b3
push 0x5f727473
jb 0x4061ba
jae 0x4061ba
popal
outsb dx, byte [esi]
add byte [edx], al
add byte [ecx + eax], ah
and al, 1
shr ecx, 8
xor dl, cl
mov byte [eax + ebp - 1], dl
mov eax, dword [esi]
movzx eax, byte [eax + ebp - 1]
add di, ax
imul ax, di, 0xce6d
add ax, 0x58bf
mov edi, eax
jmp dword [esi + 3]
inc ebx
dec word [esp]
jne 0x406185
add byte [ebx + eax], dl
add ax, 0x58bf
nop
or dword [ebx], ecx
add esp, dword [esi + 5]
mov edi, 0xb099058
add byte [eax + 0x69660602], dl
nop
add dword [ecx], eax
insd dword es:[edi], dx
into
nop
add byte [edx], al
add byte [0x5f794d00], dl
dec ebp
pop edi
imul ebx, dword [edi + 0x6e], 0x435f5469
pop edi
push eax
inc ebx
pop edi
insb byte es:[edi], dx
imul esp, dword [ebp + 0x6e], 0x88000274
add dword [esi + 0x62], edx
inc edx
add al, byte [eax]
mov byte [ecx], al
push esi
bound eax, qword [edx + 0x45]
inc ebp
insb byte es:[edi], dx
xor eax, 0x556a554f
dec esp
inc ebp
xor edx, dword [edx + 0x4b]
inc ebx
jno 0x40620f
push ebp
push eax
jo 0x406235
outsd dx, dword [esi]
xor eax, 0x63397948
xor eax, 0x63397948
jno 0x406240
dec esi
xor eax, 0x3475586e
inc bx
push edx
cmp byte [ebp + 0x38], ah
jb 0x40622f
jb 0x406237
outsb dx, byte [esi]
dec ecx
push 0x62
pop edx
xor al, 0x58
jp 0x406224
pop edx
dec edx
jno 0x406249
jns 0x40625d
outsb dx, byte [esi]
inc edx
insd dword es:[edi], dx
xor al, byte [ebx + 0x48]
sub eax, dword [edx + 0x57]
jp 0x40623b
dec eax
add bh, bh
invalid
push edi
popal
jb 0x406281
dec edi
outsb dx, byte [esi]
pop edx
outsd dx, dword [esi]
outsb dx, byte [esi]
inc ebx
jb 0x40628b
jae 0x406291
imul ebp, dword [esi + 0x67], 0xffff0000
invalid
invalid
dec edi
outsb dx, byte [esi]
push eax
outsd dx, dword [esi]
jae 0x4062a9
push edx
imul esi, dword fs:[edx + 0x65], 0x7463
imul esi, dword fs:[edx + 0x65], 0x7463
arpl word [eax + eax], si
add dword [eax], eax
sub dword [eax], eax
outsb dx, byte [esi]
je 0x4062ba
add byte [ecx], ch
add byte [esi + 0x65], ch
je 0x4062ba
je 0x4062aa
je 0x40626b
sub eax, 0x6e2d2061
and byte [0x63742070], ch
jo 0x406278
jl 0x40627a
imul bp, word [esi + 0x64], 0x7473
jae 0x4062d4
jb 0x406282
insb byte es:[edi], dx
imul esi, dword [ebx + 0x74], 0x6e696e65
add byte [bx + di], al
add byte [ecx], al
add byte [esi], al
add byte [ebx + 0x65], dh
js 0x4062e1
cmp al, byte gs:[eax]
add byte [eax + 0x3f], bh
js 0x4062b9
add dword [eax], eax
add eax, dword [eax]
add eax, dword [eax]
add eax, dword [eax]
add byte [ecx], ah
and eax, dword [ecx + 0x4c]
and dword [ebx], esp
inc ecx
dec esp
inc esi
cmp bl, byte [ecx + 0x32]
push esi
cmp al, byte [esi + 0x6c]
outsd dx, dword [esi]
jb 0x4062fa
popal
outsb dx, byte [esi]
pop edi
push edx
outsd dx, dword [esi]
je 0x406300
das
dec ebp
popal
insb byte es:[edi], dx
imul esp, dword [ebx + 0x69], 0x5f73756f
push ebx
inc esi
pop eax
xor al, byte [eax]
add dword [eax], eax
add byte [ecx], ch
add esp, dword [ecx + 0x64]
outsd dx, dword [esi]
sub dword [ebx], eax
popal
outsd dx, dword fs:[esi]
bound esp, qword [ebp + 0x2e]
js 0x40631a
nop
sbb dword [ecx], eax
or dword [ecx + 0x2d], esp
jp 0x4062fe
popal
sub eax, 0x5a2d417a
xor byte [0x1099039], ch
sub eax, 0x392d305a
nop
or dword [ecx], eax
add byte [eax + 0x61090119], dl
sub eax, 0x5a2d417a
xor byte [0x1009039], ch
add byte [ecx], al
add byte [ebx + eax + 0x780045], ah
je 0x4062df
jb 0x4062e1
popal
add byte [ebx], ah
je 0x4062e7
imul eax, dword [eax], 0x67006e
and byte [eax], al
add byte [ecx], ch
insb byte es:[edi], dx
add byte [ebp], ah
jae 0x4062f9
and byte [eax], al
je 0x4062fd
add byte [eax + eax + 0x6f], dh
outsd dx, dword [esi]
add byte [eax], ah
add byte [0x20007300], ah
add byte [esi], ah
outsd dx, dword [esi]
add byte [eax + eax + 0x64], ch
add byte [ebp], ah
jb 0x406313
and al, 0
inc ebp
add byte [eax], bh
je 0x40631b
add byte [edx], dh
jb 0x40631d
popal
add byte [ebx], ah
je 0x406323
imul eax, dword [eax], 0x67006e
and byte [eax], al
add byte [ecx], ch
insb byte es:[edi], dx
add byte [ebp], ah
jae 0x406335
and byte [eax], al
je 0x406339
outsd dx, dword [esi]
add byte [eax], ah
add byte [eax + eax + 0x65], dh
add byte [ebp], ch
jo 0x406345
outsd dx, dword [esi]
add byte [edx], dh
popal
add byte [edx], dh
jns 0x40634f
and byte [eax], al
add byte [edi], ch
insb byte es:[edi], dx
add byte [eax + eax + 0x65], ah
add byte [edx], dh
nop
sub al, 1
or dword [eax], esi
sub eax, 0x5a2d4139
popal
sub eax, 0x209907a
add byte [eax + 0x3009012c], dl
sub eax, 0x5a2d4139
popal
sub eax, 0x100907a
add byte [eax], bh
add eax, dword [edi]
inc ebp
add byte [eax + eax + 0x50], dl
add byte [ecx], al
push ebx
add byte [ebx], dl
push edi
add byte [edi], cl
push edx
add byte [eax + eax + 0x31], al
add byte [eax + 0x3009012c], dl
sub eax, 0x5a2d4139
popal
sub eax, 0x209907a
add byte [eax + 0x3009012c], dl
sub eax, 0x5a2d4139
popal
sub eax, 0x907a
add byte [eax + 0x3f], bh
add dword [eax], eax
add eax, dword [eax]
add eax, dword [eax]
add eax, 0x41232100
dec esp
inc esi
cmp dl, byte [edx + esi*2 + 0x6f]
push 0x61
outsb dx, byte [esi]
cmp dl, byte [edi + 0x69]
outsb dx, byte [esi]
xor esi, dword [edx]
das
push edx
outsd dx, dword [esi]
outsd dx, dword [esi]
bound ebp, qword [ecx + 0x6e]
inc ebx
and dword [eax + ebp*2 + 0x61], esp
add byte [ecx], al
add byte [ecx + eax], ch
push eax
add byte [eax + eax + 0x65], ch
add byte [ecx], ah
jae 0x4063f4
add byte gs:[eax], ah
add byte [ecx], cl
outsb dx, byte [esi]
add byte [eax], dh
jne 0x406400
je 0x406402
and byte [eax], al
pop ecx
add byte [edi], ch
jne 0x40640a
jb 0x40640c
and byte [eax], al
dec esp
add byte [edi], cl
dec ecx
add byte [eax + eax + 1], al
add byte [ecx + eax], bl
insb byte es:[edi], dx
add byte [ebx], dh
je 0x406420
bound eax, qword [eax]
jb 0x406424
ja 0x406426
jae 0x406428
jb 0x40642a
insb byte es:[edi], dx
add byte [edi], ch
add byte [di], dh
jo 0x406434
cmp eax, 0x2a000100
add dword [eax], edx
insb byte es:[edi], dx
add byte [ebp], ah
popal
add byte [ebx], dh
add byte gs:[eax], ah
add byte [ebx], dl
add byte gs:[eax + eax + 0x65], ch
add byte [ebx], ah
je 0x406454
and byte [eax], al
popal
add byte [eax], ah
add byte [eax + eax + 0x4f], cl
add byte [ecx], cl
inc esp
add byte [edx], bh
add byte [ecx], al
add byte [eax + 1], cl
dec esp
add byte [edi], cl
dec ecx
add byte [eax + eax + 0x20], al
add byte [ecx], ch
jae 0x406476
and byte [eax], al
outsb dx, byte [esi]
add byte [edi], ch
sub eax, 0x70007300
add byte [ecx], ah
arpl word [eax], ax
add byte gs:[eax], ah
add byte [ecx], ah
outsb dx, byte [esi]
add byte [eax + eax + 0x20], ah
add byte [esi], ch
outsd dx, dword [esi]
add byte [0x6d006500], ch
add byte [eax], dh
je 0x4064a0
jns 0x4064a2
and byte [eax], al
push ebx
add byte [eax + eax + 0x72], dh
add byte [ecx], ch
outsb dx, byte [esi]
add byte [edi], ah
add dword [eax], eax
dec eax
add dword [ebp], eax
js 0x4064b8
imul eax, dword [eax], 0x740073
and byte [eax], al
dec ecx
add byte [esi], ch
add byte [edi], ch
jb 0x4064ca
insd dword es:[edi], dx
add byte [ecx], ah
je 0x4064d0
imul eax, dword [eax], 0x6e006f
and byte [eax], al
imul eax, dword [eax], 0x20006e
and byte [eax], al
push ebx
add byte [ecx], bh
jae 0x4064e4
je 0x4064e6
add byte gs:[ebp], ch
and byte [eax], al
jb 0x4064ee
add byte gs:[edi], ah
imul eax, dword [eax], 0x740073
jb 0x4064fa
jns 0x4064fc
add byte [eax], al
js 0x40653f
add dword [eax], eax
add eax, dword [eax]
add eax, dword [eax]
push ss
add byte [ecx], ah
and ecx, dword [eax + 0x53]
push esp
push edx
cmp dl, byte [edi + 0x69]
outsb dx, byte [esi]
xor esi, dword [edx]
das
inc ecx
outsb dx, byte [esi]
outsd dx, dword [esi]
insd dword es:[edi], dx
popal
insb byte es:[edi], dx
jns 0x40654b
outsb dx, byte gs:[si]
and dword [ebp], eax
add dword [eax], eax
push es
add byte [ecx - 0x3d], ah
mov ecx, dword [esp + 4]
add dword [eax], eax
push es
add byte [ecx - 0x3d], ah
mov edx, dword [esp + 4]
add dword [eax], eax
pop es
add byte [eax + 0xb9], dl
add al, ch
add dword [eax], eax
or eax, dword [eax]
add byte [eax], al
call fcn.004b6547
popfd
cmp eax, 0
je 0x4064dc
nop
add dword [ecx], eax
pushfd
nop
add byte [ecx], al
add byte [edx], cl
add al, byte [eax - 0x6f8affc6]
add dword [ecx], eax
xor dword [eax + 0x4000100], edx
add byte [ecx - 0x3d], ah
pushal
push 0x20a0001
cmp byte [esi], 0xff
je 0x406500
add dword [ecx], eax
adc dword [eax + 0x4000100], 0x903e8000
je 0x40657f
add byte [0xd7ff5400], al
add eax, 0xd7ff5400
sub esp, 0x60001
mov esi, 0
push esi
add dword [eax], eax
push es
add byte [edi], bh
push edi
add dword [eax], eax
push es
add byte [ecx], bh
push ecx
add dword [eax], eax
push es
add byte [eax + 0x40], ch
add byte [eax], al
add byte [esi + 1], bl
add byte [eax + eax], al
mov esi, dword [eax]
call esi
add dword [eax], eax
push cs
add bh, byte [ecx + 0x400000]
sub eax, 0x89040190
or byte [eax + 0x7000100], dl
add byte [eax + 0x40], ch
add byte [eax], al
add byte [esi + 0x56], bl
add dword [eax], eax
sbb byte [edx], al
add byte [ebp - 0x7cfa8a0e], 0x90
add dword [edx], eax
jne 0x406572
add dword [ecx], eax
adc dword [eax - 0xfeff], 0x90eb7fff
add byte [ecx], al
add byte [eax + eax], al
pop edi
popal
mov esi, ebx
add dword [eax], eax
add al, 0
pop eax
nop
jmp eax