Function at 0x1002078b
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x100646d8
call fcn.10063468
sub esp, 0xd8
mov byte [ebp - 0x44], dl
mov dword [ebp - 0x78], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x100207c2
push 0x1389
push 0x152e
push 0
call dword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x10020d9f
mov dword [ebp - 0x30], 0x493d
xor ebx, ebx
cmp dword [ebp - 0x30], 0x4bbe
jle 0x1002082c
push ebx
call dword [sym.imp.USER32.dll_IsRectEmpty]
xor esi, esi
mov edi, ebx
inc esi
mov eax, ebx
mov dword [ebp - 0x18], ebx
xor eax, edi
lea ecx, [ebp - 0xe0]
cdq
push edx
push eax
call fcn.10002a87
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100207ff
mov eax, dword [eax]
push eax
call fcn.1004e245
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xe0]
call fcn.10011503
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x23a3
jl 0x100207e5
inc edi
cmp edi, 0x2205
jl 0x100207e0
jmp 0x1002082f
xor esi, esi
inc esi
cmp dword [ebp - 0x30], 0x475a
jge 0x10020843
push str.tksz_dkxatv_fdxn_jwbqvru
call fcn.1004e245
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x1002085a
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x34], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x1002084c
mov dword [ebp - 0x34], ebx
jmp 0x10020882
push 0x3163
lea eax, [ebp - 0x23]
mov byte [ebp - 0x23], bl
push eax
push ecx
push ebx
mov ecx, 0x1cca
call fcn.1001e179
add esp, 0x10
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 4
jge 0x10020864
xor eax, eax
mov dword [ebp - 0x8c], 7
mov dword [ebp - 0x90], ebx
mov word [ebp - 0xa0], ax
lea eax, [ebp + 0x10]
mov dword [ebp - 4], 2
push eax
lea eax, [ebp - 0xa0]
mov edx, 0x366e
push eax
push 0x2e27
push ebx
push 0x310a
mov ecx, 0x512b
call fcn.10020707
mov eax, dword [0x1009d4dc]
add esp, 0x14
test al, 1
jne 0x100208fe
or eax, esi
mov dword [0x1009d4dc], eax
push 0x19f6
mov byte [ebp - 4], 3
call fcn.100109ba
mov word [0x1009c140], ax
mov byte [ebp - 4], 2
mov eax, dword [0x1009d4dc]
pop ecx
test al, 2
jne 0x10020923
or eax, 2
mov dword [0x1009d4dc], eax
push 0x2e36
mov byte [ebp - 4], 4
call fcn.100109ba
pop ecx
mov word [0x1009c130], ax
mov byte [ebp - 4], 2
mov dword [ebp - 0x2c], 0x16e5
cmp dword [ebp - 0x2c], 0x1aae
jle 0x100209b8
push 0x125d
push 0x24fb
push ebx
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
mov esi, ebx
mov dword [ebp - 0x3c], ebx
mov edi, ebx
mov dword [ebp - 0x18], ebx
mov eax, edi
mov dword [ebp - 0x30], ebx
and eax, esi
mov dword [ebp - 0x38], eax
mov esi, eax
mov edi, ebx
mov ebx, dword [ebp - 0x30]
mov eax, ebx
mov ecx, 0x10080838
cdq
idiv edi
xor edx, esi
mov eax, edx
cdq
push edx
push eax
call fcn.10010b40
inc edi
cmp edi, 0x7fe4
jl 0x10020963
inc ebx
push 0
mov dword [ebp - 0x30], ebx
cmp ebx, 0x67c6
pop ebx
jl 0x1002095e
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x3c]
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x2f2b
jl 0x10020952
inc esi
mov dword [ebp - 0x3c], esi
cmp esi, 0x697b
jl 0x1002094d
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
xor esi, esi
inc esi
mov dword [ebp - 0x28], 0xfffffffa
mov byte [ebp - 4], 5
cmp dword [ebp - 0x2c], 0x1591
jge 0x100209fc
mov edx, str.tfgfq_mrje_tedxfy_stpg_uvjauupok_zamvdplv_sbyhjbny_ibuzsfthh_hbdgqxd_vhhrs
mov ecx, 0x10080838
call fcn.10013913
jmp 0x100209fc
push esi
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], 2
call fcn.10001ed2
push ebx
push ecx
push ecx
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x6c]
call fcn.1001f3bd
add esp, 0x10
mov dword [ebp - 0x28], 0xffffffee
push 0x1a
pop edi
jmp 0x10020b24
mov dword [ebp - 0x18], ebx
jmp 0x10020a4a
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x58], 0xf251d69f
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10020a3c
mov dword [ebp - 0x58], 0x15
jmp 0x10020b08
push esi
lea ecx, [ebp - 0xac]
call fcn.10001ed2
push 2
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 8
call fcn.10001ed2
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 9
push eax
push ebx
mov dword [ebp - 0x38], 4
lea ecx, [ebp - 0xac]
push 0x70c1
mov edx, 0x840
call fcn.1001f773
add esp, 0xc
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x7c]
push eax
push ebx
push ecx
call fcn.1001e26f
mov eax, dword [ebp - 0x58]
add esp, 0x10
cmp dword [ebp - 0x50], ebx
je 0x10020ac5
mov edx, esi
cmp dword [ebp - 0x58], ebx
jne 0x10020ac7
mov edx, ebx
mov eax, dword [ebp - 0x50]
xor ecx, ecx
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
cmp edx, eax
mov eax, dword [ebp - 0x88]
sete cl
cmp ecx, 0xe55a4419
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x38], esi
call fcn.10001f55
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 7
call fcn.10001f55
dec dword [ebp - 0x58]
cmp dword [ebp - 0x58], 0xfffffffd
jge 0x10020a5c
push ecx
mov byte [ebp - 0x22], bl
lea edx, [ebp - 0x22]
push ecx
call fcn.1001faba
inc dword [ebp - 0x28]
pop ecx
pop ecx
cmp dword [ebp - 0x28], edi
je 0x10020a37
lea eax, [ebp - 0x28]
push eax
push ebx
lea eax, [ebp - 0x88]
push eax
push ecx
call fcn.1001f6ea
add esp, 0x10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x88]
call fcn.10001f55
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x10020d58
call fcn.1001ddc4
push 0x34
pop ecx
xor edx, edx
movdqa xmm0, xmmword [0x10072fc0]
div ecx
push dword [ebp - 0x6c]
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x40], 9
push eax
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x48], 0x20bd2ab
push eax
mov dword [ebp - 0x1c], 0x677b568b
lea ecx, [ebp - 0x64]
push ebx
mov dword [ebp - 0x3c], edx
movdqu xmmword [ebp - 0xc8], xmm0
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
call fcn.10001fbb
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xa
push eax
sub esp, 0xc
mov dword [ebp - 0x38], 0x12f6
lea eax, [ebp - 0x64]
push ebx
push ecx
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x1c]
push eax
sub esp, 0x10
call fcn.1001f103
add esp, 0x34
mov dword [ebp - 0x1c], ebx
jmp 0x10020d10
push ecx
push ecx
mov dword [ebp - 0x20], 0x6e85fcb
lea ecx, [ebp - 0x48]
push ebx
mov dword [ebp - 0x2c], 0x8c46158e
mov dword [ebp - 0x70], 0x81f6
push 0x6aac
call fcn.1001ec28
mov eax, dword [ebp - 0x20]
add esp, 0x10
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x1c]
cmp eax, esi
mov eax, dword [ebp - 0x20]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x64]
sete dl
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x40]
je 0x10020c5c
cmp dword [ebp - 0x1c], ebx
je 0x10020c5c
mov eax, dword [ebp - 0x64]
mov ecx, esi
cmp dword [eax + 8], ebx
jne 0x10020c5e
mov ecx, ebx
xor eax, eax
cmp ecx, 0xfffffff7
setne al
cmp eax, 0xbe776e9f
sbb eax, eax
inc eax
cmp eax, 0xffffffff
jg 0x10020c80
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x64]
cmp dword [eax + ecx*4], ebx
mov eax, ebx
je 0x10020c82
mov eax, esi
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], ebx
je 0x10020ce7
lea eax, [ebp - 0x40]
mov dword [ebp - 0x4c], 0x8d9a65c8
push eax
push 0x6ca5
push 0x41c
push 0x1f78
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x68], 0xffffffff
push eax
lea eax, [ebp - 0x64]
mov dword [ebp - 0x74], 6
dec dword [ebp - 0x4c]
lea ecx, [ebp - 0x70]
push eax
push 0x420a
push esi
lea eax, [ebp - 0x4c]
mov edx, 0x6346
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x68]
push eax
push ebx
push esi
call fcn.1002006b
add esp, 0x38
jmp 0x10020d0d
push 0x2444
push esi
push esi
push ebx
lea eax, [ebp - 0x21]
mov byte [ebp - 0x21], bl
push 0x430d
push eax
mov edx, 0x7d94
mov ecx, 0x59cd
call fcn.1001eced
add esp, 0x18
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jle 0x10020be6
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 2
call fcn.10001f55
mov eax, dword [ebp - 0x3c]
push 0x1a
pop ecx
cmp eax, ecx
jge 0x10020d39
movzx edx, word [0x1009c140]
jmp 0x10020d43
cdq
idiv ecx
movzx eax, word [0x1009c130]
add edx, eax
lea ecx, [ebp - 0xa0]
push edx
call fcn.10010cdd
dec edi
jne 0x10020b5c
push 0x798a
push esi
push ebx
push esi
push 0x58ae
push 0x7593
mov edx, 0x20ee
mov ecx, 0x191f
call fcn.1001eced
mov ecx, dword [ebp - 0x78]
lea eax, [ebp - 0xa0]
add esp, 0x18
cmp ecx, eax
je 0x10020d92
push 0xffffffffffffffff
push ebx
push eax
call fcn.100116ef
push ebx
push esi
lea ecx, [ebp - 0xa0]
call fcn.10011831
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret