Function at 0x10066c60
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x10
push ebx
mov ebx, edx
mov edx, ecx
mov cl, byte [0x100c5b68]
push ebp
push esi
mov eax, dword [edx + 0x3c]
mov esi, dword [sym.imp.KERNEL32.dll_Beep]
push edi
mov dword [esp + 0x18], ebx
mov edi, dword [eax + edx + 0x78]
mov ebp, dword [eax + edx + 0x7c]
add edi, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ebp
test cl, cl
je 0x10066782
wait
sahf
lds esp, [0x6fc22e2b]
bound ebx, qword [eax + 0x4934a347]
mov edi, 0x3ba9cb64
add eax, 0x25c687c
mov esp, 0x6f9ca7c
cmp ecx, dword [edx*4 - 0x11e97661]
js 0x10066591
add al, 0x36
imul ebp, esi, 0x71
cmp edi, edx
inc ebp
push cs
or dword [ebp - 0x15], esp
or al, 0x28
int3
invalid
mov eax, ebx
shr eax, 0x10
test eax, eax
jne 0x10066796
movzx ecx, bx
sub ecx, dword [edi + 0x10]
jmp 0x10066a36
mov ebx, dword [edi + 0x20]
mov eax, dword [edi + 0x24]
add ebx, edx
add eax, edx
mov dword [esp + 0x14], eax
test cl, cl
je 0x100669f0
sar dword [edx - 0x66], 1
mov bh, 0xa2
mov al, ch
das
fidivr word [ebx]
cmpxchg ah, ch
mul dword [ecx + ebp + 0x7c]
mov ah, 0x33
ljmp 0xb741
xor ebp, ebp
cmp dword [edi + 0x18], ebp
jbe 0x10066a21
mov ecx, dword [ebx]
add ecx, edx
xor edx, edx
push 0
push 0
call int.10064530
add esp, 8
cmp eax, dword [esp + 0x18]
je 0x10066a2b
add dword [esp + 0x14], 2
inc ebp
mov edx, dword [esp + 0x10]
add ebx, 4
cmp ebp, dword [edi + 0x18]
jb 0x100669f7
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
movzx ecx, word [eax]
test ecx, ecx
js 0x10066a21
mov eax, dword [edi + 0x1c]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov ebx, dword [eax + ecx]
add ebx, ecx
cmp byte [0x100c5b68], 0
je 0x10066b76
outsb dx, byte [esi]
aaa
push ecx
xor dh, byte [ecx*4 + 0x20dbc60]
arpl word [esi + ecx*4 - 0x55], si
pop ebp
les ebp, [edi - 0x9c6c5dd]
in eax, 0xdf
clc
das
out dx, eax
xchg edx, eax
and eax, 0x675b89f5
invalid
cmp ebx, edi
jbe 0x10066b8b
mov eax, ebx
sub eax, edi
cmp eax, ebp
jae 0x10066b8b
mov ecx, ebx
call fcn.10065e70
mov ebx, eax
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x10
ret
push es
adc byte [edi], al
insb byte es:[edi], dx
push es
adc byte [0xcc10066c], cl
int3
push esi
mov esi, dword [sym.imp.KERNEL32.dll_Beep]
xor eax, eax
push edi
mov edi, ecx
cmp edx, 1
jne 0x10066f31
add byte [eax], al
cmp byte [0x100c5b68], al
je 0x10066f1f
push eax
push eax
call esi
shr esi, 0x8a
sub bl, byte [edi + 0x31]
loop 0x10066c87
mov ch, byte [edx]
pop edi
xor edx, esp
cli
sub esi, dword [edx]
int1
in al, 0xff
and ecx, dword [eax - 0xd9e1665]
mov cx, di
out 0xed, al
mov dh, 0x77
sub esi, dword [esi - 0x7a309907]
loopne 0x10066ccc
imul esi, dword [eax + edx + 0x52], 0xa2da148e
jp 0x10066c52
sti
jmp 0x10066c73
inc ebp
push cs
pop es
cmp eax, ecx
mov ch, 0xc
xor al, 0x41
pushfd
cmp byte [edi + 0x5efa04db], 0x49
pop esi
dec ecx
aam 0xd
adc eax, 0xb3622096
loope 0x10066cbb
test dword [edi - 0x53], esi
or eax, 0x934fee6a
cdq
sub ecx, ebp
add bl, ah
mov esi, dword [esi + esi + 0x46]
lds esi, [ebx]
lds eax, [edx - 0x7fce8bdd]
lahf
movsb byte es:[edi], byte [esi]
pop esp
mov gs, word [esi - 0x5c42f796]
sub ecx, dword [ebx + 0x5caa4364]
je 0x10066d20
sbb byte [edi - 0x5171a35c], 0x6a
or byte [ebp + 0x648b2ba3], bh
inc ebx
stosb byte es:[edi], al
pop esp
pop eax
mov bl, 0x6e
loope 0x10066ced
cwde
ror dword [ecx - 0x489fa434], cl
jb 0x10066d3e
inc edi
xor dword [ecx + 0x46635612], edx
sbb eax, dword [esi]
push es
jmp 0xb42f0ec5
or eax, dword [edx + 0x639b5032]
cmp eax, 0xbdbdd68a
xor dl, byte [eax - 0x65]
arpl word [0xbdbdd68a], di
popal
mov dh, 0xde
invalid
rol byte [ecx], 1
add esi, edx
salc
push eax
outsb dx, byte fs:[esi]
jo 0x10066d22
xor dword [edi + edx*2 + 0xe5a7fd], eax
add dl, byte [edi - 0x14]
and edx, dword [eax + 0xe]
inc edx
insd dword es:[edi], dx
xor eax, 0x1fbf71f4
scasb al, byte es:[edi]
sti
push ss
pop eax
adc ch, byte [eax]
pop ecx
lea eax, [ecx + 0x4b95315a]
xchg esi, eax
out 0xfc, al
insd dword es:[edi], dx
pop edx
pop ebp
mov bh, byte [eax - 0x20]
scasd eax, dword es:[edi]
pop ds
jle 0x10066d15
jg 0x10066d3b
adc bl, dh
shl eax, cl
mov ch, 0xd
fnstcw word [esi]
movsb byte es:[edi], byte [esi]
inc ecx
cmp byte [ecx], cl
lodsd eax, dword [esi]
cmp eax, 0x8a542148
pop ds
neg dword [edx + 0x7b]
lcall 0x969a, 0x4b37599e
sbb byte [esi], dh
arpl di, di
rcl byte [ebx + 0x57fbdfbb], 0x53
invalid
mov eax, dword [0x100c5b70]
test eax, eax
jne case.default.0x10066f45
jmp 0x10066fd2
test edi, edi
jne 0x10066fda
lea ecx, [edx - 1]
cmp ecx, 0x10
ja case.default.0x10066f45
jmp dword [ecx*4 + 0x10067458]
mov edi, dword [0x100c5b80]
jmp 0x10066fd2
mov edi, dword [0x100c5b7c]
jmp 0x10066fd2
mov edi, dword [0x100c5bb4]
jmp 0x10066fd2
mov edi, dword [0x100c5ba8]
jmp 0x10066fd2
mov edi, dword [0x100c5b78]
jmp 0x10066fd2
mov edi, dword [0x100c5b88]
jmp 0x10066fd2
mov edi, dword [0x100c5ba0]
jmp 0x10066fd2
mov edi, dword [0x100c5b90]
jmp 0x10066fd2
mov edi, dword [0x100c5b94]
jmp 0x10066fd2
mov edi, dword [0x100c5ba4]
jmp 0x10066fd2
mov edi, dword [0x100c5bb0]
jmp 0x10066fd2
mov edi, dword [0x100c5b8c]
jmp 0x10066fd2
mov edi, dword [0x100c5b84]
jmp 0x10066fd2
mov edi, dword [0x100c5bac]
jmp 0x10066fd2
mov edi, dword [0x100c5b98]
jmp 0x10066fd2
mov edi, dword [0x100c5b9c]
jmp 0x10066fd2
mov edi, dword [0x100c5bb8]
test edi, edi
je case.default.0x10066f45
cmp byte [edi], 0
je case.default.0x10066f45
cmp byte [0x100c5b68], 0
je 0x10067410
add byte [eax], al
fld dword [edx - 0x12283125]
xor eax, 0x2f1a7e1f
fcmovu st(0), st(6)
dec eax
sub al, 0x4b
fimul word [eax + 0x2c]
dec ebx
cld
dec esi
add byte [esi - 0x13], dl
ja 0x1006707e
and bh, byte [0xa3f75333]
add dh, byte [ecx + eax*4]
not byte [ebx]
fnstcw word [0xd99efc19]
dec edi
push esp
in al, 0x54
add al, 0xa0
je 0x10067076
mov dl, 0xc7
push ecx
pop es
scasd eax, dword es:[edi]
mov bl, 0xa
cmp al, 0xe7
out 0x5e, eax
cli
fidivr word [esi]
cld
cmp al, 0x4f
sahf
fcomp qword [edx]
or dh, dh
and byte [edx - 0x40], 0xf8
pushfd
jns 0x10066ffc
sbb al, 0xb5
clc
mov esi, 0xae436cdd
xor byte [edx], ch
add bh, byte [ecx + 0x3b080943]
add al, 0xf5
mov dh, 0xa6
dec edi
xchg edx, eax
jns 0x10067057
invalid
jo 0x10066fee
xchg esi, eax
push ebp
pop es
or edx, dword [ebx]
out 0x64, al
rcr edi, cl
mov esi, dword [ebx + esi*2 - 0x69d746c2]
sti
or eax, 0x69000b3b
sub esi, esp
pop ecx
in al, dx
nop
cmp eax, 0xd66c4c0b
salc
mov esp, 0xd098926f
loopne 0x100670f6
adc dword [edi], ebp
sbb dword [ebp + 0x72], edx
mov edi, 0x8d529ac1
xchg edx, eax
pop esi
fisubr dword [edx + ecx*2 + 0x29931547]
mov byte [0xb50236b3], al
xchg edx, eax
pop esi
stosd dword es:[edi], eax
jg 0x10067041
out dx, al
test al, 0x66
imul edi, dword [edi], 0x905adcf9
cli
push esi
movups xmm2, xmmword [esi + 0x35]
push esp
pushal
or ch, byte [ecx + 0xf]
sbb ch, byte [eax - 0x7fa3da89]
xchg esi, eax
cmp al, 0x37
bswap esp
mov ch, 0xc1
invalid
mov esi, 0x4897d306
ja 0x1006713f
pop ecx
push ebx
jmp 0x10067118
mov edx, dword [ebx]
pop esp
ret 0x4242
std
inc ebx
mov ds, word [edx - 0x44c55f03]
pop es
wait
jecxz 0x100671bd
mov es, word [ebx]
or byte [0x1c696647], ah
mov bl, 0xf9
fadd dword [esp + edi]
inc eax
jns 0x100671b5
lcall 0x8ac, 0x160acba3
mov dword [0x5c997be3], eax
stosb byte es:[edi], al
or eax, 0x2f2c4193
aaa
adc ebp, dword [edi + 0x35a3c060]
adc ah, byte [ebx + edx*2]
push es
push edi
mov ch, 0x49
cmpsd dword [esi], dword es:[edi]
fsubr qword [edi]
lahf
add byte [eax], cl
sal dword [ebx], 0x24
out 0x6f, eax
adc byte fs:[ebx - 0x13], bl
cwde
lodsb al, byte [esi]
mov word [ebx - 0x76], es
sbb byte [esi - 0x39], dl
in al, dx
add eax, dword [ebx - 0x2c]
dec esi
lodsd eax, dword [esi]
or al, 0x8a
call 0x8abbc8b6
mov ch, 0x7a
call 0x6b407574
retf 0x82a8
fdiv qword [eax + 0x78]
mov ah, byte [ecx + 0x1e6cfc62]
push ds
out 0x78, eax
jl 0x1006714d
das
adc ah, dh
jbe 0x1006719d
push ebx
rcl ch, cl
bsr ebp, dword [ecx - 0x5631fe16]
and ecx, ebx
popal
into
test eax, 0x613ecb23
mov edi, 0x8e655d67
xchg ecx, eax
and cl, ah
xchg ebp, eax
mov dh, 0x8e
mov al, byte [0xd217120e]
and eax, 0x47affdd2
or esp, esi
vpaddb ymm3, ymm1, ymmword [ebx - 0x1dc62f97]
fidivr dword [0x8c544cbe]
mov byte [ebx + 0x152b129d], dl
mov bl, 0x67
out 0x6c, eax
mov word [edi + 0x1406bdb7], ds
push eax
or esi, dword [eax - 0x53cbd507]
and byte [0x39ba97d8], ah
sbb esi, dword [edi + 0x25]
cmp dword [ebx], ebx
ja 0x1006723f
jg 0x100671cf
sahf
push ecx
out 0xaa, al
fimul word [ebx - 0x2c2faeb1]
cvttps2pi mm0, qword [edi - 0x298fe4f7]
jmp 0x10067278
sub ch, bl
and dl, byte [ecx - 0x1f638909]
mov bl, byte [ecx + 0x2df77abb]
ficomp dword [edi - 0x6b]
inc esp
stosb byte es:[edi], al
inc eax
invalid
and dh, 0x54
push cs
jnp 0x10067216
sti
test byte ss:[esi], al
pop ebp
insb byte es:[edi], dx
mov ebx, 0xaa5698a6
invalid
push 0x2b
push 0xa48d6762
mov edx, 1
xor ecx, ecx
call fcn.100674a0
add esp, 8
push edi
call eax
test eax, eax
jne case.default.0x10066f45
push 2
push 0xc8ac8026
lea edx, [eax + 1]
xor ecx, ecx
call fcn.100674a0
add esp, 8
push edi
call eax
mov edx, dword [esp + 0xc]
pop edi
pop esi
test edx, edx
je 0x10067455
mov ecx, eax
jmp 0x10066500
ret