Function at 0x59d658
Capabilities:
Encode data using xor

Disassembly:
push 0xd91fe
call 0x4c615c
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
imul esp, dword [ebp + 0x72], 0x6e
insb byte es:[edi], dx
xor esi, dword [edx]
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [edi + 0x65], al
je 0x4c6093
insd dword es:[edi], dx
jo 0x4c6093
popal
je 0x4c60ae
inc ecx
add byte [ebx + 0x72], al
popal
je 0x4c60b3
inc esi
imul ebp, dword [ebp + 0x41], 0x65724300
popal
je 0x4c60bf
inc esi
imul ebp, dword [ebp + 0x4d], 0x69707061
outsb dx, byte [esi]
inc ecx
add byte [ebp + 0x61], cl
jo 0x4c60c1
imul esp, dword [ebp + 0x77], 0x6946664f
insb byte es:[edi], dx
add byte gs:[ebp + 0x6e], dl
insd dword es:[edi], dx
popal
jo 0x4c60d1
imul esp, dword [ebp + 0x77], 0x6946664f
insb byte es:[edi], dx
add byte gs:[ebx + 0x6c], al
outsd dx, dword [esi]
jae 0x4c60ef
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
add byte gs:[edi + ebp*2 + 0x61], cl
popal
dec esp
imul esp, dword [edx + 0x72], 0x41797261
add byte [ebp + 0x78], al
imul esi, dword [eax + edx*2 + 0x72], 0x7365636f
jae 0x4c60aa
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi + 0x32], dl
xor dh, byte [eax]
xor dword [ecx], esi
xor byte [0x452e3831], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
push esi
xor dh, byte [edx]
xor byte [ecx], dh
xor dword [eax], esi
xor eax, 0x452e3831
push eax
inc ebp
add byte [eax], al
add byte [ebp + 0x6e], al
arpl word [edx + 0x79], si
jo 0x4c61bf
push eax
inc ebp
pop edi
dec ecx
outsb dx, byte [esi]
imul esi, dword [eax + eax], 0xc10007b6
add dword [eax], eax
add byte [0x458b5f5d], al
add byte [ebx - 0x7af0ff08], al
xchg dword [ecx], eax
add byte [eax], al
mov eax, ebp
add eax, 0x24
push eax
call dword [edi + ebp]
mov dword [ebp], eax
mov eax, ebp
add eax, 0x3e
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 8], eax
mov eax, ebp
add eax, 0x31
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 4], eax
mov eax, ebp
add eax, 0x4a
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 0xc], eax
mov eax, ebp
add eax, 0x87
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 0x1c], eax
mov eax, ebp
add eax, 0x6b
push eax
push dword [ebp]
jne 0x4c61c1
call dword [edi + ebp + 4]
mov dword [ebp + 0x14], eax
mov eax, ebp
add eax, 0x5d
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 0x10], eax
mov eax, ebp
add eax, 0x94
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 0x20], eax
mov eax, ebp
add eax, 0x7b
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 0x18], eax
mov eax, ebp
add eax, 0x24
push eax
push 0x104
call dword [ebp + 4]
cmp eax, 4
jl 0x4c6318
add eax, ebp
add eax, 0x23
mov dl, byte [eax]
cmp dl, 0x5c
je 0x4c6221
inc eax
mov byte [eax], 0x5c
xor ecx, ecx
mov dl, byte [ecx + ebp + 0x129]
mov byte [ecx + eax + 1], dl
cmp dl, 0
je 0x4c6236
inc ecx
jmp 0x4c6223
mov eax, dword [ebp + 0x149]
cmp eax, 0
je 0x4c62cc
push 0
push 0x80
push 4
push 0
push 0
push 0xc0000000
mov eax, ebp
add eax, 0x24
push eax
call dword [ebp + 8]
cmp eax, 0xffffffff
je 0x4c62cc
push eax
push 0
mov ecx, dword [ebp + 0x149]
push ecx
push 0
push 4
push 0
push eax
call dword [ebp + 0xc]
cmp eax, 0
je 0x4c62c9
push eax
mov ecx, dword [ebp + 0x149]
push ecx
push 0
push 0
push 0xf001f
push eax
call dword [ebp + 0x10]
cmp eax, 0
je 0x4c62c6
push eax
mov ecx, dword [ebp + 0x14d]
mov esi, ebp
add esi, 0x152
add esi, ecx
mov ecx, dword [ebp + 0x149]
mov dh, byte [ebp + 0x151]
mov dl, byte [esi]
xor dl, dh
mov byte [eax], dl
inc esi
inc eax
dec ecx
cmp ecx, 0
jne 0x4c62b5
call dword [ebp + 0x14]
call dword [ebp + 0x18]
call dword [ebp + 0x18]
mov eax, ebp
add eax, 0x24
push eax
call dword [ebp + 0x1c]
cmp eax, 0
je 0x4c6318
mov ebx, eax
mov eax, ebp
add eax, 0x13a
push eax
push ebx
call dword [edi + ebp + 4]
cmp eax, 0
je 0x4c6318
mov dword [ebp], eax
mov ebx, ebp
add ebx, 0x152
mov ecx, dword [ebp + 0x14d]
add ebx, ecx
mov ecx, dword [ebp + 0x149]
add ebx, ecx
push ebx
jmp 0x4c6316
call eax
push 0
call dword [ebp + 0x20]
dec eax
pop edi
push ebp
add eax, 0x5050507
add dword [0xfafa050a], eax
add eax, 0x505bd05
add eax, 0x5050505
inc ebp
add eax, 0x505051f
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0xbf050504
adc eax, 0xb11a0b05
or al, 0xc8
and al, 0xbd
add al, 0x49
enter 0xffffffffffff9524, 0xffffffffffffff95
push ecx
insd dword es:[edi], dx
insb byte es:[edi], dx
jbe 0x4c6397
jne 0x4c63eb
push 0x62
ja 0x4c63dc
push 0x76706825
jno 0x4c63a4
pushal
and eax, 0x256b7077
jo 0x4c63f3
popal
pushal
ja 0x4c63b1
push edx
insb byte es:[edi], dx
imul esi, dword [esi], 0x37
or byte [edi], cl
and dword [edx], esi
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x55050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5054055
dec ecx
add al, 6
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x40550505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
push ebp
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5405505
add eax, 0x5060449
xor edx, edx
salc
dec eax
inc eax
add eax, 0x6044905
add eax, 0x48d6d231
add eax, 0x5050505
add eax, 0x5e50505
mov esp, dword [esi + ecx + 0x51c0704]
movsd dword es:[edi], dword [esi]
add al, byte [0x5052505]
add eax, 0x750508f5
xchg ebx, eax
adc byte [0x50b0505], al
add eax, 0x50510a5
add eax, 0x15057417
add eax, 0x5070505
add eax, 0x5050501
add eax, 0x1050505
add eax, 0x5050505
add eax, 0x10c50505
add eax, 0x5051505
add eax, 0x7050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5150505
add eax, 0x5050515
add eax, 0x5150505
add eax, 0x10b0b105
add eax, 0x5050551
sal dword [edi + 0x7e50510], 1
add eax, 0x10a50505
add eax, 0x50517d1
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x510b30d
or dword [0x5050505], eax
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x55400505
inc eax
xor eax, 0x5050505
add eax, 0x50508f5
adc eax, 0x5050505
add eax, 0x5010505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5850505
add eax, 0x405540e5
xor al, 5
add eax, 0xa5050505
add al, byte [0x50b0505]
add eax, 0x505029f
add dword [0x5050505], eax
add eax, 0x5050505
add eax, 0x45050505
add eax, 0x772be505
jbe 0x4c65e0
add ax, 0x505
add eax, 0x5050525
movsd dword es:[edi], dword [esi]
adc byte [0x5051d05], al
add eax, 0x505029b
add eax, 0x5050505
add eax, 0x5050505
add eax, 0xc5050545
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x55400505
inc eax
aas
and eax, 0x77666b40
jl 0x4c663d
jno 0x4c661f
inc eax
and eax, 0x372b3753
xor eax, 0x302b3434
sub esi, dword [edi + 0x6a462529]
jne 0x4c665a
ja 0x4c664c
bound ebp, qword [ebp + 0x71]
and eax, 0x252c462d
push edx
inc ebx
push esi
add eax, 0x686a4d05
pushal
push ebp
bound esp, qword fs:[eax + 0x3f]
and eax, 0x2b727272
pushal
imul esp, dword [esi + 0x77], 0x7c
jne 0x4c6673
jne 0x4c6664
sub esp, dword [esi + 0x6a]
push 0x5050505
add eax, 0x6c644840
imul edi, dword [edi], 0x76637225
pushal
imul esp, dword [esi + 0x77], 0x7c
jne 0x4c6690
jne 0x4c6681
sub esp, dword [esi + 0x6a]
push 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0xf20502b3
retf
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x502b305
bnd retf
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x2b30505
add eax, 0x9efacbf2
add eax, 0x47020601
push 0x6a
imul esp, dword [eax + 0x64], 0xc05046b
add eax, 0xfafebabb
add byte [ebx + 0x64], al
imul esi, dword [esi + 0x60], 0x70775101
pushal
mov byte [ebp + 0x24], al
sub dword [edi], eax
add dword [esi + 0x6d], eax
ja 0x4c6784
cli
fdivrp st(2)
cli
test byte [ebx], 0x95
inc ebp
add al, 2
dec esp
imul esi, dword [ecx + 0x60], 0x62
pushal
ja 0x4c675d
pop ds
test edx, edi
add eax, 0xc4de8e7a
leave
mov edx, 0x45d2bc5
add dword [edi + 0x7c], eax
push edx
imul esp, dword [ebx], 0xf9de6a52
push edx
push 0xffffffffffffffde
stc
int 0xe0
ja 0x4c67d9
push es
cli
test dword [ecx + 0x6b6c6446], eax
rcr ecx, cl
loop 0x4c6770
jmp 0x4c67e1
pop ebx
add byte [edx], ch
add eax, 0x159daa
xor esi, dword [ecx]
and al, byte [esi]
loopne 0x4c673e
fidiv word [esp + eax + 0x6b18a7a]
or eax, 0x44cc6562
pop ebp
pop es
in al, dx
mov ch, 0xb5
cli
idiv dl
add bl, cl
lsl esi, word [esi + 0x71]
ja 0x4c681c
imul esp, dword [edx - 0x13], 0xe
rsqrtps xmm5, xmmword [ecx + 0x60]
push esi
sbb cl, byte [esi]
or ebp, dword [ecx - 2]
std
or dword [edx], eax
push ebx
jmp 0x4c6831
insb byte es:[edi], dx
ret
insb byte es:[edi], dx
cmp eax, dword [ecx]
xor dl, ch
add ebx, ecx
in eax, 0xfa
cli
imul byte [ecx - 0x65]
loope 0x4c67c4
xor byte [0x51027d39], ah
dec edx
outsd dx, dword [si]
pushal
xchg dword [edx + 0x6e], ebp
mov esi, 0x269a266
sbb al, 0xc4
add edx, dword [esi + 0x7c]
inc ebx
adc dl, bl
in al, 0xda
pushal
push 0xf0a89a2
dec esp
pushfd
ja 0x4c6870
pushaw
push ss
or ah, byte [edx]
xchg edx, eax
push 0x4305c55f
push es
js 0x4c6841
fdivp st(6)
cli
add al, 0xb9
or cl, byte [esp + ecx*2]
inc ecx
insb byte es:[edi], dx
jbe 0x4c689d
jno 0x4c6891
insd dword es:[edi], dx
sbb dword [ebp - 0x3df8fea7], ecx
sti
cli
or dword [ecx], eax
xchg ebp, eax
leave
xchg byte [ecx + 0x21], al
add ebp, edi
in al, dx
sbb al, byte [0xe916c166]
ret 0xfafb
rcl dword [esi], 0xe9
jle 0x4c6821
invalid
cdq
add ebp, dword [ebp - 0x324299be]
jne 0x4c687a
add dl, byte [ecx + edx*2]
adc al, 0x51
call 0xe706ace2
mov dl, 0x7a
pop es
cdq
add dword [ecx + edx*2], ecx
inc ecx
xor eax, 0x95686c51
cli
and byte [0xccc1de17], al
int3
mov ecx, 0xccccccbd
int3
jmp 0x59d622
pushal
jmp 0x59d62d
pushfd
jmp 0x59d639
push dword fs:[0]
jmp 0x59d648
jmp 0x59d653
jmp section.EPE1
push 0xffffffffffffffe8
pushal
jmp 0x59d761
popal
pop eax
mov eax, dword [esp - 8]
jmp 0x59d61e