Function at 0x10019882
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xec
mov ecx, dword [ebp + 0x18]
push esi
lea esi, [eax + 0xdce]
mov edx, eax
mov dword [ebp - 0x24], esi
push edi
mov edi, dword [ebp + 0x14]
cmp eax, esi
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x2c], edx
jbe 0x100193b3
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x18]
cmp edx, 0x4d5f
ja 0x100197c9
je 0x10019aa5
cmp edx, 0x24bd
ja 0x100194b7
je 0x1001948d
lea eax, [edx - 0x23c5]
cmp eax, 0xba
ja case.0x100193ef.9158
movzx eax, byte [eax + 0x10019ae4]
jmp dword [eax*4 + 0x10019ad0]
mov edi, 0xfe7967be
mov ecx, dword [ebp - 0xc]
cmp byte [ebp + ecx - 0x71], 0xa
jne case.0x100193ef.9158
dec dword [ebp - 0xc]
jmp case.0x100193ef.9158
mov edx, dword [ebp - 0x78]
push 0x39
push edx
lea eax, [ebp - 0x70]
push eax
call fcn.1000c330
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp eax, 6
jb 0x100193a6
jmp case.0x100193ef.9158
mov eax, dword [ebp - 0xc]
cmp byte [ebp + eax - 0x71], 0xd
jne 0x10019442
dec eax
mov dword [ebp - 0xc], eax
add eax, 0xfffffffa
cmp eax, 0x31
ja 0x100193a6
cmp byte [ebp - 0x70], 0x2f
jne 0x100193a6
mov ecx, dword [ebp - 0xc]
push 4
lea edx, [ebp + ecx - 0x74]
push str..bin
push edx
call fcn.10021180
add esp, 0xc
test eax, eax
jne 0x100193a6
test dword [edi], ebp
invalid
jmp case.0x100193ef.9158
mov bl, 0x28
jge 0x10019472
invalid
mov ecx, dword [ebp - 0xc]
xor eax, eax
test ecx, ecx
je case.0x100193ef.9158
lea ebx, [ebx]
movzx edx, byte [ebp + eax - 0x70]
mov word [ebp + eax*2 - 0xec], dx
inc eax
cmp eax, ecx
jb 0x100194a0
jmp case.0x100193ef.9158
cmp edx, 0x4ce3
ja 0x10019531
je 0x10019520
mov eax, edx
sub eax, 0x24fb
je 0x100194f6
sub eax, 0x3e
jne case.0x100193ef.9158
outsd dx, dword gs:[esi]
aas
sahf
jnp 0x5c8f8922
add byte [edx], al
push ecx
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0xec]
call fcn.100111b0
add esp, 4
jmp case.0x100193ef.9158
mov eax, dword [ebp - 0xc]
push 4
push 0xa
xor edx, edx
push 0x1002fd26
push ebx
mov word [ebp + eax*2 - 0xec], dx
call fcn.10017ba0
add esp, 0x10
add eax, 0xa
mov dword [ebp - 0x74], eax
jmp case.0x100193ef.9158
jecxz 0x1001959e
cwde
pop eax
inc esi
mov dword [ebp - 0x10], 2
jmp case.0x100193ef.9158
cmp edx, 0x4d21
jne case.0x100193ef.9158
mov bh, 0x6b
mov al, byte [0x78b749c]
cmp eax, 2
jb 0x100197c1
cmp eax, dword [ebx + 0x1c]
jae 0x100197c1
mov eax, 0x2d5a
cmp eax, eax
jne 0x100197b3
movzx eax, byte [ebx]
dec eax
je 0x1001957c
dec eax
je 0x1001968d
dec eax
je 0x10019708
jmp case.0x1001969f.135
xor esi, esi
mov edi, edi
cmp esi, 0xc8
ja case.0x10019593.1
movzx ecx, byte [esi + 0x10019bc8]
jmp dword [ecx*4 + 0x10019ba0]
mov edx, dword [ebp - 0x14]
shr edx, 9
add edx, dword [ebx + 0x28]
push edx
push ebx
call fcn.10004410
add esp, 8
mov dword [ebp - 0x10], eax
jmp case.0x10019593.1
ljmp 0x5352:0x28530309
pop esp
sar byte [eax + 0x458b6fd1], 1
in al, dx
shr eax, 9
add eax, dword [ebx + 0x28]
push eax
push ebx
call fcn.10004410
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
jmp 0x10019672
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
and ecx, 0x1ff
test byte [edi], 1
lea ecx, [ecx + ebx + 0x38]
mov dword [ebp - 0x1c], ecx
je 0x100195fb
shr eax, 4
movzx eax, al
mov byte [ecx], al
jmp case.0x10019593.1
movzx edx, byte [ecx]
shr eax, 8
xor eax, edx
movzx edx, byte [ecx]
and eax, 0xf
xor eax, edx
mov byte [ecx], al
jmp case.0x10019593.1
mov eax, dword [edi]
mov ecx, eax
shr ecx, 1
add eax, ecx
mov dword [ebp - 0x14], eax
jmp case.0x10019593.1
mov eax, dword [ebp - 0x14]
mov edx, eax
and edx, 0x1ff
lea ecx, [edx + ebx + 0x38]
inc eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], eax
jmp case.0x10019593.1
test byte [edi], 1
je 0x10019658
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edx]
mov ecx, dword [ebp + 0x10]
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x1c]
and eax, 0xf
shl edx, 4
or eax, edx
mov byte [ecx], al
mov byte [ebx + 3], 1
jmp case.0x10019593.1
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax]
mov ecx, dword [ebp - 0x1c]
mov byte [ecx], al
mov byte [ebx + 3], 1
jmp case.0x10019593.1
dec esi
inc esp
xchg edx, eax
das
mov esp, 0xf07d83
jne case.0x1001969f.135
add esi, 0x19
lea edx, [esi + 0x3f6d]
cmp edx, 0x4035
jbe 0x10019580
xor esi, esi
nop
cmp esi, 0x87
ja case.0x1001969f.1
movzx eax, byte [esi + 0x10019ca8]
jmp dword [eax*4 + 0x10019c94]
insd dword es:[edi], dx
vmwrite edx, edi
add cl, ch
inc byte [eax]
add byte [eax], al
stosb byte es:[edi], al
lock and cl, byte [ebp + 6]
mov ecx, dword [edi]
shr ecx, 8
add ecx, dword [ebx + 0x28]
push ecx
push ebx
call fcn.10004410
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
jne case.0x1001969f.135
jmp case.0x1001969f.1
mov byte [ebx + 3], 1
jmp case.0x1001969f.1
mov edx, dword [ebp + 0x10]
mov ecx, dword [edi]
movzx eax, word [edx]
add ecx, ecx
and ecx, 0x1ff
push eax
lea edx, [ecx + ebx + 0x38]
push edx
call fcn.1002a980
add esp, 8
add esi, 0x2d
lea eax, [esi + 0x51f8]
cmp eax, 0x527f
jbe 0x10019690
xor esi, esi
cmp esi, 0x63
ja case.0x1001971a.1
movzx ecx, byte [esi + 0x10019d44]
jmp dword [ecx*4 + 0x10019d30]
ja 0x100196ef
aas
imul ecx, dword [edi - 0x74ebaa75], 0x3c00302
shl byte [0x1ff], 0x8d
jl 0x1001974f
cmp al, ch
add ebx, dword [eax]
add byte [ebx + 0x118b104d], cl
and eax, 0xf0000000
and edx, 0xfffffff
or eax, edx
mov dword [ecx], eax
push eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
add ecx, ecx
add ecx, ecx
and ecx, 0x1ff
lea eax, [ecx + ebx + 0x38]
call fcn.10016790
mov edi, dword [ebp + 0x14]
add esp, 4
jmp case.0x1001971a.1
pushfd
mov esi, 0x8bba31aa
pop ss
shr edx, 7
add edx, dword [ebx + 0x28]
push edx
push ebx
call fcn.10004410
add esp, 8
mov dword [ebp - 0x10], eax
jmp case.0x1001971a.1
cmp dword [ebp - 0x10], 0
jne case.0x1001969f.135
add esi, 0x21
lea eax, [esi + 0x2d22]
cmp eax, 0x2d85
jbe 0x1001970a
jmp case.0x1001969f.135
mov byte [ebx + 3], 1
mov eax, 0x2d5a
add eax, 0x60
cmp eax, 0x2d5a
jbe 0x1001955d
mov esi, dword [ebp - 0x10]
jmp case.0x100193ef.9158
cmp edx, 0x6b16
ja 0x100198bd
je 0x100198ad
lea eax, [edx - 0x6a1e]
cmp eax, 0xba
ja case.0x100193ef.9158
movzx ecx, byte [eax + 0x10019dbc]
jmp dword [ecx*4 + 0x10019da8]
or edx, dword [esp + ebp]
hlt
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov dword [ebp - 0x18], 0xda012800
call fcn.1002d520
mov ecx, dword [ebp - 0x28]
push 4
push 0x100
lea eax, [ebp - 8]
push eax
add ecx, 0xffffff00
push ecx
call fcn.10017ba0
add esp, 0x1c
mov dword [ebp - 0x20], eax
jmp case.0x100193ef.9158
pop eax
and ebp, esi
mov eax, edi
cmp dword [ebp - 0x28], 0
jne case.0x100193ef.9158
mov eax, 0x2608
cmp eax, eax
je 0x10019ab2
add eax, 0x5f
cmp eax, 0x2608
jbe 0x1001986d
jmp case.0x100193ef.9158
pop dword [esi + ebp*8]
mov esi, dword [eax]
cmp dword [ebp - 0x20], 0
jne case.0x100193ef.9158
mov eax, 0x25ce
cmp eax, eax
je 0x10019ab7
add eax, 0x61
cmp eax, 0x25ce
jbe 0x10019898
jmp case.0x100193ef.9158
mov eax, dword [ebp - 0x20]
mov edx, 0x2000
mov word [eax], dx
jmp case.0x100193ef.9158
cmp edx, 0x7998
ja 0x10019a7f
je 0x100198fd
mov eax, edx
sub eax, 0x6b54
je 0x100198ea
sub eax, 0x3e
jne case.0x100193ef.9158
adc cl, byte [0xc68b7204]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x20]
mov ecx, 0x46c0
mov word [edx + 2], cx
xor esi, esi
jmp case.0x100193ef.9158
mov eax, dword [ebx]
test dword [eax + 0x10], 0x400
je 0x10019a6a
mov edx, dword [ebp + 0xc]
xor esi, esi
mov dword [ebp - 0x34], 0x77bc
mov dword [ebp - 0x30], esi
cmp esi, 0x36
ja case.0x1001992b.1
movzx eax, byte [esi + 0x10019e8c]
jmp dword [eax*4 + 0x10019e78]
mov eax, dword [ebx]
test dword [eax + 0x10], 0x200
je case.0x1001992b.1
mov esi, 0x436
mov edx, dword [ebp + 8]
mov eax, esi
sub eax, 0x436
je 0x1001997d
sub eax, 0x3b
je 0x10019973
sub eax, 0x3b
jne 0x10019981
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x18]
mov eax, dword [ebp + 8]
push 2
push edx
call fcn.100281e0
mov ecx, dword [ebx]
mov dword [ecx + 0x18], eax
jmp 0x10019981
mov eax, dword [ecx]
shr eax, 8
mov byte [edx + 1], al
jmp 0x10019981
mov cl, byte [ecx]
mov byte [edx], cl
mov ecx, dword [ebp + 0x18]
add esi, 0x3b
cmp esi, 0x4ac
jbe 0x10019946
mov edx, dword [ebp + 0xc]
jmp case.0x1001992b.1
cmp dword [edx], 0x10
jae case.0x1001992b.1
mov edx, 0xeeb
mov ecx, dword [ebp + 0xc]
mov eax, edx
sub eax, 0xeeb
je 0x100199d5
sub eax, 0x2f
je 0x100199c0
sub eax, 0x2f
jne 0x100199f8
add dword [ecx], 8
jmp 0x100199f8
mov eax, dword [edi]
movzx esi, byte [eax]
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov eax, dword [ebp + 0x18]
shl esi, cl
add dword [eax], esi
inc dword [edi]
jmp 0x100199f8
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi]
test ecx, ecx
jne 0x100199f5
mov eax, 0x34cf
cmp eax, eax
je 0x10019ac2
add eax, 0x3d
cmp eax, 0x34cf
jbe 0x100199e5
dec ecx
mov dword [esi], ecx
add edx, 0x2f
cmp edx, 0xf49
jbe 0x100199a5
mov edx, dword [ebp + 0xc]
cmp dword [edx], 0x10
jb 0x100199a0
mov ecx, dword [ebp + 0x18]
jmp case.0x1001992b.1
mov eax, 0x3d02
cmp eax, eax
jne 0x10019a25
mov dword [ecx], 0
mov dword [edx], 0
add eax, 0x2d
cmp eax, 0x3d02
jbe 0x10019a17
jmp case.0x1001992b.1
mov eax, dword [ebx]
mov esi, dword [ecx]
mov dword [eax + 0x40], esi
mov eax, dword [ebx]
mov eax, dword [eax + 0x20]
test eax, eax
je case.0x1001992b.1
mov esi, dword [ecx]
mov dword [eax + 0x14], esi
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
add eax, 0x12
add esi, 0x12
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], esi
cmp eax, 0x77f2
jbe 0x1001991b
mov esi, 5
jmp case.0x100193ef.9158
mov eax, dword [eax + 0x20]
test eax, eax
je 0x10019a78
mov dword [eax + 0x10], 0
mov esi, 5
jmp case.0x100193ef.9158
cmp edx, 0x79d6
je 0x100193a6
mov edx, dword [ebp - 0x2c]
add edx, 0x3e
mov dword [ebp - 0x2c], edx
cmp edx, dword [ebp - 0x24]
jbe 0x100193b0
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
jecxz 0x10019af8
cmp dword [edi], 0xffffff8f
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
dec edi
retf
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov eax, 0x20
pop esi
mov esp, ebp
pop ebp
ret
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add dword [esp + eax], eax
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 2
add al, 4
add al, 4
add al, 4
add al, byte [esp + eax]
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 3
nop
setbe byte [ecx]
adc byte [edx + 1762656661], bl
xchg esi, eax
add dword [eax], edx
sbb al, 0x96
add dword [eax], edx
xor al, 0x96
add dword [eax], edx
mov ch, 0x95
add dword [eax], edx
xlatb
xchg ebp, eax
add dword [eax], edx
arpl word [esi - 0x6959efff], dx
add dword [eax], edx
js 0x10019b5c
add dword [eax], edx
add byte [ecx], cl
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], eax
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
add cl, byte [ecx]
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ebx], eax
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
add al, 9
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [151587081], eax
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
push es
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
pop es
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or byte [ebp - 1766850487], cl
add dword [eax], edx
ficom dword [esi - 0x692befff]
add dword [eax], edx
scasb al, byte es:[edi]
xchg edi, eax
add dword [eax], edx
clc
xchg esi, eax
add dword [eax], edx
add byte [esp + eax], al
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add dword [esp + eax], eax
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, byte [esp + eax]
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add esi, dword [edx - 105]
add dword [eax], edx
mov ss, word [edi - 0x68deefff]
add dword [eax], edx
stosb byte es:[edi], al
xchg edi, eax
add dword [eax], edx
xchg esp, eax
xchg edi, eax
add dword [eax], edx
add byte [esp + eax], al
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add dword [esp + eax], eax
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, byte [esp + eax]
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add edi, edx
xchg edi, eax
add dword [eax], edx
push edi
cwde
add dword [eax], edx
sbb bl, byte [eax - 0x677defff]
add dword [eax], edx
mov ebx, dword [edx + 0x4001001]
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add dword [esp + eax], eax
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 2
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 3
nop
xchg edi, eax
cdq
add dword [eax], edx
xor dword [edx - 0x66cdefff], ebx
add dword [eax], edx
adc byte [edx - 0x65b9efff], bl
add dword [eax], edx
add byte [esp + eax], al
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 1
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 2
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 3
int3