Function at 0x10066a00
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x240
mov edi, dword [edx + 0x1c]
lea eax, [edx + 0x1c]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x10], edx
mov dword [edx + 0x1c], 0
mov dword [esp + 0x14], eax
test edi, edi
je 0x10066a6d
mov dword [esp + 0x1a0], edi
mov al, byte [edi + 0x40]
test al, al
jne 0x10066f9f
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
push dword [eax]
call dword [ecx]
add esp, 4
mov cl, 1
mov ebx, eax
mov esi, edx
xchg byte [edi + 0x30], cl
test cl, cl
je 0x10066f79
push ebx
call dword [esi + 0xc]
add esp, 4
jmp 0x10066f9f
movq xmm0, qword [esp + 0x80]
movq xmm1, qword [esp + 0x88]
movq xmm2, qword [esp + 0x90]
movq xmm3, qword [esp + 0x98]
movsd xmm4, qword [esp + 0xa0]
mov eax, dword [esp + 0xa8]
movq qword [esp + 0x108], xmm0
movq qword [esp + 0x110], xmm1
movq qword [esp + 0x118], xmm2
movq qword [esp + 0x120], xmm3
movsd qword [esp + 0x128], xmm4
mov dword [esp + 0x130], eax
mov dword [esp + 0x1e8], eax
movq qword [esp + 0x1c0], xmm0
movq qword [esp + 0x1c8], xmm1
movq qword [esp + 0x1d0], xmm2
movq qword [esp + 0x1d8], xmm3
movsd qword [esp + 0x1e0], xmm4
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x18]
test edi, edi
je 0x10066f6c
mov ecx, dword [edi + 8]
call fcn.100f4810
mov eax, dword [0x104dec50]
test eax, eax
jne 0x10068b7d
mov dword [esp + 0x16c], 0
lea eax, [edi + 8]
mov dword [esp + 0x1b0], eax
mov al, byte [edi + 0xc]
test al, al
jne 0x100694c4
movsd xmm0, qword [edi + 0x80]
mov dword [esp + 0x1c], edi
movsd qword [esp + 0x180], xmm0
movsd xmm0, qword [edi + 0x70]
movsd xmm1, qword [edi + 0x78]
movsd qword [esp + 0x178], xmm1
movsd qword [esp + 0x170], xmm0
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x34]
mov edx, dword [edi + 0x38]
mov esi, dword [edi + 0x3c]
mov edi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
xor eax, 0x6e657261
xor edi, 0x70736575
mov dword [esp + 0x30], edi
mov edi, ecx
xor ecx, 0x6c796765
xor edi, 0x736f6d65
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], ecx
mov ecx, esi
mov dword [esp + 0x38], eax
mov eax, edx
xor edx, 0x79746573
xor esi, 0x74656462
xor ecx, 0x646f7261
xor eax, 0x6e646f6d
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
lea edx, [ecx + 0x18]
mov dword [esp + 0x1b4], edx
lea edx, [esp + 0x20]
mov dword [esp + 0xc], edx
call fcn.10062170
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x34]
shl edx, 0x18
xor esi, edi
mov dword [esp + 0x1f0], edi
mov edi, eax
or edx, dword [esp + 0x54]
mov dword [esp + 0x78], edx
xor ecx, edx
mov edx, dword [esp + 0x30]
add edx, eax
mov dword [esp + 4], edx
mov edx, dword [esp + 0x44]
adc ebx, edx
shld edi, edx, 0xd
shld edx, eax, 0xd
mov eax, dword [esp + 0x38]
mov dword [esp + 8], ebx
xor edx, ebx
mov ebx, dword [esp + 4]
xor edi, ebx
add eax, esi
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
adc eax, ecx
mov dword [esp + 0x190], eax
mov eax, esi
shrd esi, ecx, 0x10
shld eax, ecx, 0x10
xor esi, dword [esp + 0x190]
xor eax, dword [esp]
add dword [esp + 8], eax
mov ecx, eax
adc ebx, esi
shld ecx, esi, 0x15
shrd eax, esi, 0xb
mov esi, edi
xor eax, ebx
xor ecx, dword [esp + 8]
add dword [esp], edi
adc dword [esp + 0x190], edx
shld esi, edx, 0x11
shrd edi, edx, 0xf
mov edx, ebx
mov ebx, dword [esp + 0x1f0]
xor esi, dword [esp]
xor edx, dword [esp + 0x78]
mov dword [esp + 0x78], 0x10
xor dword [esp + 8], ebx
mov ebx, dword [esp + 0x190]
xor edi, ebx
xor ebx, 0xff
add dword [esp + 8], esi
adc edx, edi
mov dword [esp + 4], edx
mov edx, esi
shrd esi, edi, 0x13
shld edx, edi, 0xd
xor esi, dword [esp + 4]
mov edi, ecx
xor edx, dword [esp + 8]
add ebx, ecx
adc dword [esp], eax
shld edi, eax, 0x10
shrd ecx, eax, 0x10
xor edi, ebx
xor ecx, dword [esp]
add dword [esp + 4], edi
mov eax, edi
adc dword [esp + 8], ecx
shld eax, ecx, 0x15
shrd edi, ecx, 0xb
mov ecx, edx
xor edi, dword [esp + 8]
xor eax, dword [esp + 4]
add ebx, edx
adc dword [esp], esi
shld ecx, esi, 0x11
shrd edx, esi, 0xf
xor ecx, ebx
xor edx, dword [esp]
add dword [esp + 4], ecx
mov esi, ecx
adc dword [esp + 8], edx
shld esi, edx, 0xd
shrd ecx, edx, 0x13
mov edx, eax
xor ecx, dword [esp + 8]
xor esi, dword [esp + 4]
add dword [esp], eax
adc ebx, edi
shld edx, edi, 0x10
shrd eax, edi, 0x10
xor edx, dword [esp]
xor eax, ebx
add dword [esp + 8], edx
mov edi, edx
adc dword [esp + 4], eax
shld edi, eax, 0x15
shrd edx, eax, 0xb
mov eax, esi
xor edx, dword [esp + 4]
xor edi, dword [esp + 8]
add dword [esp], esi
adc ebx, ecx
shld eax, ecx, 0x11
shrd esi, ecx, 0xf
xor eax, dword [esp]
xor esi, ebx
add dword [esp + 8], eax
mov ecx, eax
adc dword [esp + 4], esi
shld ecx, esi, 0xd
shrd eax, esi, 0x13
mov esi, edi
xor ecx, dword [esp + 8]
xor eax, dword [esp + 4]
add ebx, edi
adc dword [esp], edx
shld esi, edx, 0x10
shrd edi, edx, 0x10
mov edx, dword [esp]
xor esi, ebx
xor edi, edx
shld esi, edi, 0x15
add ebx, ecx
adc edx, eax
shrd eax, ecx, 0xf
mov ecx, dword [esp + 0x1c]
xor eax, esi
xor eax, edx
xor eax, ebx
mov edx, dword [ecx + 0x40]
mov esi, dword [ecx + 0x44]
mov ecx, edx
mov dword [esp], edx
and ecx, eax
shr eax, 0x19
movd xmm0, eax
movdqu xmm1, xmmword [esi + ecx]
lea ebx, [ecx + 0x10]
mov dword [esp + 8], ecx
punpcklbw xmm0, xmm0
and ebx, edx
pshuflw xmm0, xmm0, 0xe0
mov dword [esp + 4], ebx
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + 0x1f0], xmm0
pcmpeqb xmm0, xmm1
movdqa xmmword [esp + 0x190], xmm1
pcmpeqd xmm1, xmm1
pmovmskb edi, xmm0
test di, di
je 0x10066f10
mov eax, edi
mov ecx, dword [esp + 0x10]
lea edi, [eax - 1]
and edi, eax
bsf ax, ax
movzx eax, ax
add eax, dword [esp + 8]
and eax, dword [esp]
neg eax
lea ebx, [eax + eax*8]
lea edx, [esi + ebx*4 - 0x24]
call fcn.10035240
pcmpeqd xmm1, xmm1
test al, al
je 0x10066e50
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov eax, dword [eax + 0xc]
cmp eax, dword [esi + ebx*4 - 0x18]
jne 0x10066e50
mov edx, dword [esp + 0x10]
mov dword [esp + 0x6c], edi
mov dword [esp + 0xf0], esi
mov dword [esp + 0x64], ecx
mov edi, dword [edx + 8]
mov edx, dword [esi + ecx*4 - 0x1c]
xor esi, esi
nop dword [eax + eax]
cmp eax, esi
je 0x100675a5
movzx ecx, byte [edi + esi]
mov bh, byte [edx + esi]
inc esi
mov bl, cl
add bl, 0xbf
cmp bl, 0x1a
setb ch
shl ch, 5
or ch, cl
mov cl, bh
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, bh
cmp ch, cl
je 0x10066ec0
mov esi, dword [esp + 0xf0]
mov edi, dword [esp + 0x6c]
jmp 0x10066e50
movdqa xmm0, xmmword [esp + 0x190]
mov ecx, dword [esp + 4]
pcmpeqb xmm0, xmm1
pmovmskb eax, xmm0
test ax, ax
jne 0x10067b95
mov edx, dword [esp + 0x78]
movdqu xmm2, xmmword [esi + ecx]
movdqa xmm0, xmmword [esp + 0x1f0]
mov dword [esp + 8], ecx
lea eax, [ecx + edx + 0x10]
add edx, 0x10
pcmpeqb xmm0, xmm2
movdqa xmmword [esp + 0x190], xmm2
and eax, dword [esp]
mov dword [esp + 0x78], edx
pmovmskb edi, xmm0
mov dword [esp + 4], eax
jmp 0x10066e50
mov dword [esp + 0x2c], 3
jmp 0x10069037
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x10066f89
push dword [edi + 0x28]
call dword [eax + 0xc]
add esp, 4
mov dword [edi + 0x28], ebx
mov dword [edi + 0x2c], esi
xor eax, eax
xchg byte [edi + 0x30], al
mov al, byte [edi + 0x40]
test al, al
je 0x10067085
mov al, 1
xchg byte [edi + 0x24], al
test al, al
je 0x10067013
call sub.KERNEL32.dll_GetProcessHeap
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100694b3
mov ecx, 0x1040141d
mov edx, 0x14
mov dword [eax], 0
mov edi, eax
mov byte [eax + 8], 4
call fcn.1004c640
mov esi, dword [edi]
mov dword [esp + 8], eax
mov dword [esp], edi
test esi, esi
je 0x1006718e
mov ebx, dword [edi + 4]
push esi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x1006718e
cmp dword [ebx + 8], 9
jae 0x1006717b
call sub.KERNEL32.dll_GetProcessHeap
push esi
jmp 0x10067183
mov eax, dword [edi + 8]
movzx edx, word [edi + 0x12]
mov dword [esp + 0xe8], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x15c], eax
mov al, byte [edi + 0x10]
mov byte [esp + 0x160], al
mov al, byte [edi + 0x11]
mov byte [esp + 0xec], al
mov eax, dword [edi + 0x14]
mov dword [edi + 0x14], 2
mov cl, byte [edi + 0x20]
mov byte [esp + 0x74], cl
mov cl, byte [edi + 0x21]
mov byte [esp + 0x18], cl
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x68], ecx
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x70], ecx
movzx ecx, word [edi + 0x22]
mov word [esp + 0x60], cx
xor ecx, ecx
cmp eax, 2
xchg byte [edi + 0x24], cl
je 0x10067425
cmp eax, 3
jne 0x1006742f
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1a0]
mov edi, dword [ecx]
test edi, edi
je 0x1006710c
mov al, 1
mov bl, 1
xchg byte [edi + 0x40], al
mov al, 1
xchg byte [edi + 0x30], al
test al, al
jne 0x100670d0
mov eax, dword [edi + 0x28]
xor edx, edx
mov dword [esp], eax
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x2c], 0
xchg byte [edi + 0x30], dl
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x100670d0
push dword [esp]
call dword [eax + 0xc]
mov ecx, dword [esp + 0x18]
add esp, 4
xchg byte [edi + 0x3c], bl
test bl, bl
jne 0x100670fc
mov eax, dword [edi + 0x34]
mov ebx, dword [edi + 0x38]
xor edx, edx
mov dword [edi + 0x38], 0
xchg byte [edi + 0x3c], dl
mov ecx, dword [esp + 0x14]
test ebx, ebx
je 0x100670fc
push eax
call dword [ebx + 4]
mov ecx, dword [esp + 0x18]
add esp, 4
mov eax, dword [ecx]
lock dec dword [eax]
jne 0x1006710c
call fcn.100620a0
mov ecx, dword [esp + 0x14]
mov dword [ecx], esi
movsd xmm1, qword [esp + 0x88]
movq xmm0, qword [esp + 0x80]
movq xmm2, qword [esp + 0x98]
mov eax, dword [esp + 0xa8]
movsd qword [esp + 0x110], xmm1
movsd xmm1, qword [esp + 0x90]
movq qword [esp + 0x108], xmm0
movq qword [esp + 0x120], xmm2
mov dword [esp + 0x130], eax
movsd qword [esp + 0x118], xmm1
movq xmm1, qword [esp + 0xa0]
movq qword [esp + 0x128], xmm1
jmp 0x10067330
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp]
mov eax, dword [esp + 8]
mov dword [edi], eax
mov dword [edi + 4], 0x1041909c
mov edi, 1
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x30]
mov eax, dword [esp + 0x48]
movq xmm0, qword [esp + 0x40]
movsd qword [esp + 0xc8], xmm2
movsd qword [esp + 0xc0], xmm1
movq xmm2, qword [esp + 0x20]
movq xmm1, qword [esp + 0x28]
mov dword [esp + 0xd8], eax
movq qword [esp + 0xd0], xmm0
movq qword [esp + 0xb8], xmm1
movq qword [esp + 0xb0], xmm2
mov esi, dword [esp + 0x1a0]
mov al, 1
mov bl, 1
xchg byte [esi + 0x40], al
mov al, 1
xchg byte [esi + 0x30], al
test al, al
jne 0x1006722a
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x28]
xor edx, edx
mov dword [esi + 0x2c], 0
xchg byte [esi + 0x30], dl
test ecx, ecx
je 0x1006722a
push eax
call dword [ecx + 0xc]
add esp, 4
xchg byte [esi + 0x3c], bl
test bl, bl
jne 0x1006724e
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x34]
xor edx, edx
mov dword [esi + 0x38], 0
xchg byte [esi + 0x3c], dl
test ecx, ecx
je 0x1006724e
push eax
call dword [ecx + 4]
add esp, 4
mov eax, dword [esp + 0x1a0]
lock dec dword [eax]
mov ebx, dword [esp + 4]
jne 0x1006726a
lea ecx, [esp + 0x1a0]
call fcn.100620a0
mov esi, dword [esp + 8]
test edi, edi
je 0x1006728a
mov eax, dword [esp + 0xac]
mov ecx, dword [esp]
mov dword [eax], 1
mov dword [eax + 4], ecx
jmp 0x1006912f
mov eax, dword [esp + 0xd8]
movq xmm0, qword [esp + 0xd0]
movq xmm1, qword [esp + 0xc8]
movq xmm2, qword [esp + 0xc0]
movq xmm3, qword [esp + 0xb0]
movsd xmm4, qword [esp + 0xb8]
cmp dword [esp + 0x1c], 4
mov edx, dword [esp]
mov dword [esp + 0xa8], eax
movq qword [esp + 0xa0], xmm0
movq qword [esp + 0x98], xmm1
movq qword [esp + 0x90], xmm2
movsd qword [esp + 0x88], xmm4
movq qword [esp + 0x80], xmm3
movq qword [esp + 0x108], xmm3
movsd qword [esp + 0x110], xmm4
movq qword [esp + 0x118], xmm2
movq qword [esp + 0x120], xmm1
movq qword [esp + 0x128], xmm0
mov dword [esp + 0x130], eax
jne 0x10067342
mov eax, dword [esp + 0xac]
mov dword [eax], 2
jmp 0x1006912f
mov eax, dword [esp + 0x130]
movsd xmm2, qword [esp + 0x120]
movsd xmm1, qword [esp + 0x118]
movq xmm0, qword [esp + 0x128]
mov dword [esp + 0x1e8], eax
mov eax, dword [esp + 0x1c]
movsd qword [esp + 0x1d8], xmm2
movsd qword [esp + 0x1d0], xmm1
movq xmm2, qword [esp + 0x108]
movq xmm1, qword [esp + 0x110]
movq qword [esp + 0x1e0], xmm0
cmp eax, 3
movq qword [esp + 0x1c8], xmm1
movq qword [esp + 0x1c0], xmm2
je 0x10066b09
mov ecx, dword [esp + 0xac]
movsd xmm1, qword [esp + 0x1c8]
movq xmm0, qword [esp + 0x1c0]
movq xmm2, qword [esp + 0x1d8]
mov dword [ecx], 0
mov dword [ecx + 4], edx
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], ebx
mov dword [ecx + 0x10], eax
movsd qword [ecx + 0x1c], xmm1
movsd xmm1, qword [esp + 0x1d0]
mov eax, dword [esp + 0x1e8]
movq qword [ecx + 0x14], xmm0
movq qword [ecx + 0x2c], xmm2
movsd qword [ecx + 0x24], xmm1
movq xmm1, qword [esp + 0x1e0]
mov dword [ecx + 0x3c], eax
movq qword [ecx + 0x34], xmm1
jmp 0x1006912f
mov word [esp + 0x7c], dx
jmp 0x10066fa8
mov ecx, dword [esp + 0xe8]
mov esi, dword [esp + 0x68]
mov bh, byte [esp + 0x74]
mov bl, byte [esp + 0x18]
movzx edi, word [esp + 0x60]
cmp eax, 1
mov dword [esp + 0x170], ecx
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x174], ecx
mov cl, byte [esp + 0x160]
mov byte [esp + 0x178], cl
mov cl, byte [esp + 0xec]
mov byte [esp + 0x179], cl
mov ecx, dword [esp + 0x70]
mov word [esp + 0x17a], dx
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], esi
mov dword [esp + 0x184], ecx
mov byte [esp + 0x188], bh
mov byte [esp + 0x189], bl
mov word [esp + 0x18a], di
mov eax, dword [esi + 8]
mov word [esp + 0x7c], dx
jne 0x10067727
mov esi, dword [esp + 0x10]
cmp eax, 3
je 0x10067734
mov eax, dword [esp + 0x188]
movsd xmm0, qword [esp + 0x180]
movsd xmm2, qword [esp + 0x170]
movsd xmm1, qword [esp + 0x178]
lea edx, [esi + 0x18]
lea ecx, [esp + 0x20]
mov dword [esp + 0x158], eax
lea eax, [esp + 0x140]
movsd qword [esp + 0x150], xmm0
movsd qword [esp + 0x148], xmm1
movsd qword [esp + 0x140], xmm2
push eax
push esi
call fcn.100d6430
add esp, 8
mov eax, dword [esp + 0x20]
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
movq xmm0, qword [esp + 0x30]
xor edi, edi
mov dword [esp], eax
mov eax, dword [esp + 0x24]
movsd qword [esp + 0xb8], xmm2
movsd qword [esp + 0xc0], xmm1
movq xmm2, qword [esp + 0x48]
movq xmm1, qword [esp + 0x50]
movq qword [esp + 0xb0], xmm0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
movq qword [esp + 0xc8], xmm2
movq qword [esp + 0xd0], xmm1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xd8], eax
jmp 0x100671f6
mov eax, dword [0x104debf8]
cmp eax, 5
jb 0x100675b4
mov eax, dword [0x104debfc]
mov eax, dword [0x104d53e8]
mov esi, dword [esp + 0x10]
dec eax
cmp eax, 5
jb 0x100676ea
mov ecx, dword [0x104d4dd4]
test ecx, ecx
je 0x100676ea
mov al, 1
cmp ecx, 1
je 0x100675e7
cmp ecx, 2
jne 0x10069485
mov al, 2
movzx edx, al
mov ecx, 0x104d4dd4
call fcn.10109d10
test al, al
je 0x100676ea
mov ecx, dword [0x104d4dd8]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x1006957e
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0xb0], 0
mov dword [esp + 0x20], 0x1041fca8
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 0
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], esi
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x80]
mov dword [esp + 0xc0], edi
lea edi, [esp + 0xb0]
lea eax, [esp + 0x170]
mov dword [esp + 0x30], edx
lea edx, [esp + 0x108]
mov dword [esp + 0x108], edi
lea edi, [ecx + 0x2c]
mov dword [esp + 0x34], 2
mov dword [esp + 0x140], edx
lea edx, [esp + 0x20]
mov dword [esp + 0x144], 1
mov dword [esp + 0x148], edi
mov dword [esp + 0x10c], edx
lea edx, [esp + 0x140]
mov dword [esp + 0x110], 0x10419960
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], 0x100619e0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], 0x100d6690
call fcn.1010a570
mov edx, dword [esp + 0xf0]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x1b8], esi
lea eax, [edx + ecx*4 - 0xc]
mov dword [esp + 0x1bc], eax
mov ecx, dword [edx + ecx*4 - 4]
test ecx, ecx
je 0x10067b95
mov esi, dword [esp + 0x64]
lea ebx, [esp + 0xc0]
lea edx, [edx + esi*4 - 4]
jmp 0x1006788c
mov esi, dword [esp + 0x10]
cmp eax, 1
je 0x100674cd
call sub.KERNEL32.dll_GetProcessHeap
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100694b3
mov ecx, 0x1040141d
mov edx, 0x14
mov dword [eax], 0
mov edi, eax
mov byte [eax + 8], 4
call fcn.1004c640
mov esi, dword [edi]
mov dword [esp + 8], eax
mov dword [esp], edi
test esi, esi
je 0x1006914a
mov ebx, dword [edi + 4]
push esi
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x1006914a
cmp dword [ebx + 8], 9
jae 0x10069137
call sub.KERNEL32.dll_GetProcessHeap
push esi
jmp 0x1006913f
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0x108], 0
mov dword [esp + 0x20], 0x1041fce0
mov dword [esp + 0x10c], edx
lea edx, [esp + 0x140]
mov dword [esp + 0x110], eax
lea eax, [ecx + 0x2c]
mov dword [esp + 0x114], esi
mov dword [esp + 0x118], edi
mov dword [esp + 0x134], edx
lea edx, [esp + 0x1b8]
mov dword [esp + 0x138], 1
mov dword [esp + 0x13c], eax
mov dword [esp + 0x164], edx
mov dword [esp + 0x168], 0x10077450
lea esi, [esp + 0x108]
lea edx, [esp + 0x20]
lea eax, [esp + 0x164]
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x140], esi
mov dword [esp + 0x144], edx
lea edx, [esp + 0x134]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x148], 0x10419960
call fcn.1010a570
nop word cs:[eax + eax]
mov ecx, ebx
call fcn.1005fe10
mov eax, dword [esp + 0x1bc]
mov ecx, dword [eax + 8]
lea edx, [eax + 8]
test ecx, ecx
je 0x10067b95
dec ecx
mov dword [edx], ecx
lea ecx, [ecx + ecx*2]
mov edx, dword [eax]
shl ecx, 4
mov eax, dword [edx + ecx + 0x18]
mov dword [esp + 0x98], eax
movsd xmm0, qword [edx + ecx + 0x10]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [edx + ecx]
movq xmm1, qword [edx + ecx + 8]
movq qword [esp + 0x88], xmm1
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [edx + ecx + 0x28]
mov eax, dword [edx + ecx + 0x1c]
movsd qword [esp + 0x1a8], xmm0
cmp eax, 2
movq xmm0, qword [edx + ecx + 0x20]
movq qword [esp + 0x1a0], xmm0
je 0x10067b95
movsd xmm1, qword [esp + 0x88]
mov ecx, dword [esp + 0x98]
movq xmm0, qword [esp + 0x90]
movq xmm3, qword [esp + 0x80]
movq xmm2, qword [esp + 0x1a0]
cmp eax, 1
movsd qword [esp + 0xb8], xmm1
movq xmm1, qword [esp + 0x1a8]
mov dword [esp + 0xc8], ecx
movq qword [esp + 0xc0], xmm0
movq qword [esp + 0xb0], xmm3
mov dword [esp + 0xcc], eax
movq qword [ebx + 0x10], xmm2
movq qword [ebx + 0x18], xmm1
mov eax, dword [esp + 0xd0]
mov eax, dword [eax + 8]
jne 0x10067ae1
cmp eax, 3
je 0x10067aea
mov eax, dword [esp + 0x170]
xor eax, 1
or eax, dword [esp + 0x174]
jne 0x10068b90
mov eax, dword [esp + 0xb4]
mov edi, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb0]
mov esi, dword [esp + 0x178]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x180]
mov dword [esp], eax
call fcn.100fe060
mov dword [esp + 0x140], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x144], edx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x108], ebx
lea ecx, [esp + 0x20]
lea edx, [esp + 0x140]
mov dword [esp + 0x10c], eax
lea eax, [esp + 0x108]
mov dword [esp + 0x110], edi
push eax
call fcn.100fe310
add esp, 4
mov eax, dword [esp + 0x20]
xor eax, 1
or eax, dword [esp + 0x24]
jne 0x100694fd
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 8]
mov dword [esp + 4], esi
xor eax, eax
mov edx, ecx
xor edx, esi
mov esi, edi
xor esi, ebx
or esi, edx
mov esi, dword [esp]
mov edx, 0xff
setne al
cmp ecx, dword [esp + 4]
sbb edi, ebx
lea ebx, [esp + 0xc0]
cmovb eax, edx
xor ecx, ecx
cmp dword [esp + 0x30], esi
setne cl
cmovb ecx, edx
test al, al
cmovne ecx, eax
cmp cl, 1
jne 0x10068b90
mov eax, dword [0x104debf8]
cmp eax, 5
jb 0x10067a87
mov eax, dword [0x104debfc]
mov eax, dword [0x104d53e8]
dec eax
cmp eax, 5
jb 0x10067870
mov ecx, dword [0x104d4d74]
test ecx, ecx
je 0x10067870
mov al, 1
cmp ecx, 1
je 0x10067ab6
cmp ecx, 2
jne 0x10067b7e
mov al, 2
movzx edx, al
mov ecx, 0x104d4d74
call fcn.10109d10
test al, al
je 0x10067870
mov ecx, dword [0x104d4d78]
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x1006779f
jmp 0x10069552
cmp eax, 1
je 0x1006797c
mov eax, dword [0x104debf8]
cmp eax, 5
jb 0x10067af9
mov eax, dword [0x104debfc]
mov eax, dword [0x104d53e8]
dec eax
cmp eax, 5
jb 0x10067870
mov ecx, dword [0x104d4d68]
test ecx, ecx
je 0x10067870
mov al, 1
cmp ecx, 1
je 0x10067b24
cmp ecx, 2
jne 0x10067b6b
mov al, 2
movzx edx, al
mov ecx, 0x104d4d68
call fcn.10109d10
test al, al
je 0x10067870
mov ecx, dword [0x104d4d6c]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x10069563
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0x108], 0
mov dword [esp + 0x20], 0x1041fcc8
jmp 0x100677bb
mov ecx, 0x104d4d68
call fcn.10109c60
test al, al
jne 0x10067b24
jmp 0x10067870
mov ecx, 0x104d4d74
call fcn.10109c60
test al, al
jne 0x10067ab6
jmp 0x10067870
mov cl, 1
mov dword [esp + 0xcc], 2
lea eax, [esp + 0x80]
mov dword [esp + 0x78], 2
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x190], ecx
mov cl, 1
mov edx, dword [esp + 0xc]
movq xmm2, qword [eax]
test cl, cl
movsd xmm1, qword [edx + 8]
movq xmm0, qword [edx]
movq qword [esp + 0x1a0], xmm2
movsd qword [esp + 0x110], xmm1
movsd xmm1, qword [edx + 0x10]
mov edx, dword [edx + 0x18]
movq qword [esp + 0x108], xmm0
movsd qword [esp + 0x118], xmm1
movq xmm1, qword [eax + 8]
mov dword [esp + 0x120], edx
movq qword [esp + 0x1a8], xmm1
je 0x10068009
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
mov esi, dword [esi + 0x3c]
mov edi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
xor eax, 0x6e657261
xor edi, 0x70736575
mov dword [esp + 0x30], edi
mov edi, ecx
xor ecx, 0x6c796765
xor edi, 0x736f6d65
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], ecx
mov ecx, esi
mov dword [esp + 0x38], eax
mov eax, edx
xor edx, 0x79746573
xor esi, 0x74656462
xor ecx, 0x646f7261
xor eax, 0x6e646f6d
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], edx
lea edx, [esp + 0x20]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
call fcn.10062170
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x34]
shl edx, 0x18
xor esi, edi
mov dword [esp + 0x6c], edi
mov edi, eax
or edx, dword [esp + 0x54]
mov dword [esp + 0x64], edx
xor ecx, edx
mov edx, dword [esp + 0x30]
add edx, eax
mov dword [esp + 4], edx
mov edx, dword [esp + 0x44]
adc ebx, edx
shld edi, edx, 0xd
shld edx, eax, 0xd
mov eax, dword [esp + 0x38]
mov dword [esp + 8], ebx
xor edx, ebx
mov ebx, dword [esp + 4]
xor edi, ebx
add eax, esi
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
adc eax, ecx
mov dword [esp + 0xf0], eax
mov eax, esi
shrd esi, ecx, 0x10
shld eax, ecx, 0x10
xor esi, dword [esp + 0xf0]
xor eax, dword [esp]
add dword [esp + 8], eax
mov ecx, eax
adc ebx, esi
shld ecx, esi, 0x15
shrd eax, esi, 0xb
mov esi, edi
xor eax, ebx
xor ecx, dword [esp + 8]
add dword [esp], edi
adc dword [esp + 0xf0], edx
shld esi, edx, 0x11
shrd edi, edx, 0xf
mov edx, ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x6c], 0x10
xor esi, dword [esp]
xor edx, dword [esp + 0x64]
xor dword [esp + 8], ebx
mov ebx, dword [esp + 0xf0]
xor edi, ebx
xor ebx, 0xff
add dword [esp + 8], esi
adc edx, edi
mov dword [esp + 4], edx
mov edx, esi
shrd esi, edi, 0x13
shld edx, edi, 0xd
xor esi, dword [esp + 4]
mov edi, ecx
xor edx, dword [esp + 8]
add ebx, ecx
adc dword [esp], eax
shld edi, eax, 0x10
shrd ecx, eax, 0x10
xor edi, ebx
xor ecx, dword [esp]
add dword [esp + 4], edi
mov eax, edi
adc dword [esp + 8], ecx
shld eax, ecx, 0x15
shrd edi, ecx, 0xb
mov ecx, edx
xor edi, dword [esp + 8]
xor eax, dword [esp + 4]
add ebx, edx
adc dword [esp], esi
shld ecx, esi, 0x11
shrd edx, esi, 0xf
xor ecx, ebx
xor edx, dword [esp]
add dword [esp + 4], ecx
mov esi, ecx
adc dword [esp + 8], edx
shld esi, edx, 0xd
shrd ecx, edx, 0x13
mov edx, eax
xor ecx, dword [esp + 8]
xor esi, dword [esp + 4]
add dword [esp], eax
adc ebx, edi
shld edx, edi, 0x10
shrd eax, edi, 0x10
xor edx, dword [esp]
xor eax, ebx
add dword [esp + 8], edx
mov edi, edx
adc dword [esp + 4], eax
shld edi, eax, 0x15
shrd edx, eax, 0xb
mov eax, esi
xor edx, dword [esp + 4]
xor edi, dword [esp + 8]
add dword [esp], esi
adc ebx, ecx
shld eax, ecx, 0x11
shrd esi, ecx, 0xf
xor eax, dword [esp]
xor esi, ebx
add dword [esp + 8], eax
mov ecx, eax
adc dword [esp + 4], esi
shld ecx, esi, 0xd
shrd eax, esi, 0x13
mov esi, edi
xor ecx, dword [esp + 8]
xor eax, dword [esp + 4]
add ebx, edi
adc dword [esp], edx
shld esi, edx, 0x10
shrd edi, edx, 0x10
mov edx, dword [esp]
xor esi, ebx
xor edi, edx
shld esi, edi, 0x15
add ebx, ecx
adc edx, eax
shrd eax, ecx, 0xf
mov ecx, dword [esp + 0x1c]
xor eax, esi
xor eax, edx
xor eax, ebx
mov ebx, dword [ecx + 0x40]
mov esi, dword [ecx + 0x44]
mov ecx, ebx
mov dword [esp], esi
and ecx, eax
shr eax, 0x19
movd xmm0, eax
movdqu xmm1, xmmword [esi + ecx]
lea edx, [ecx + 0x10]
mov dword [esp + 8], ecx
punpcklbw xmm0, xmm0
and edx, ebx
pshuflw xmm0, xmm0, 0xe0
mov dword [esp + 4], edx
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + 0x220], xmm0
pcmpeqb xmm0, xmm1
movdqa xmmword [esp + 0xf0], xmm1
pcmpeqd xmm1, xmm1
pmovmskb edi, xmm0
test di, di
je 0x10067fa7
mov eax, edi
mov ecx, dword [esp + 0x10]
lea edi, [eax - 1]
and edi, eax
bsf ax, ax
movzx eax, ax
add eax, dword [esp + 8]
and eax, ebx
neg eax
lea esi, [eax + eax*8]
mov eax, dword [esp]
lea edx, [eax + esi*4 - 0x24]
mov dword [esp + 0x64], edx
call fcn.10035240
pcmpeqd xmm1, xmm1
test al, al
je 0x10067ee1
mov eax, dword [esp + 0x10]
mov edx, esi
mov esi, dword [esp]
mov eax, dword [eax + 0xc]
cmp eax, dword [esi + edx*4 - 0x18]
jne 0x10067ee1
mov dword [esp + 0x208], ebx
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp]
mov dword [esp + 0x204], edi
mov dword [esp + 0x20c], edx
xor esi, esi
mov edi, dword [ecx + 8]
mov edx, dword [ebx + edx*4 - 0x1c]
nop
cmp eax, esi
je 0x100682a0
movzx ecx, byte [edi + esi]
mov bh, byte [edx + esi]
inc esi
mov bl, cl
add bl, 0xbf
cmp bl, 0x1a
setb ch
shl ch, 5
or ch, cl
mov cl, bh
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, bh
cmp ch, cl
je 0x10067f60
mov ebx, dword [esp + 0x208]
mov edi, dword [esp + 0x204]
jmp 0x10067ee1
movdqa xmm0, xmmword [esp + 0xf0]
mov ecx, dword [esp + 4]
pcmpeqb xmm0, xmm1
pmovmskb eax, xmm0
test ax, ax
jne 0x10068001
mov edx, dword [esp + 0x6c]
movdqa xmm0, xmmword [esp + 0x220]
mov dword [esp + 8], ecx
lea eax, [ecx + edx + 0x10]
add edx, 0x10
mov dword [esp + 0x6c], edx
mov edx, dword [esp]
and eax, ebx
mov dword [esp + 4], eax
movdqu xmm2, xmmword [edx + ecx]
pcmpeqb xmm0, xmm2
movdqa xmmword [esp + 0xf0], xmm2
pmovmskb edi, xmm0
jmp 0x10067ee1
mov byte [esp + 0x80], 3
cmp byte [esp + 0x190], 0
je 0x10068d53
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
jne 0x10068d53
call sub.KERNEL32.dll_GetProcessHeap
push 0x44
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x10069526
mov dword [eax], 1
mov edx, eax
mov dword [eax + 4], 1
mov eax, dword [esp + 0x68]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x70]
mov dword [edx + 0xc], eax
mov al, byte [esp + 0x74]
mov byte [edx + 0x10], al
mov al, byte [esp + 0x18]
mov byte [edx + 0x11], al
movzx eax, word [esp + 0x60]
mov word [edx + 0x12], ax
mov eax, dword [esp + 0xe8]
mov dword [edx + 0x14], 2
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x15c]
mov dword [edx + 0x1c], eax
mov al, byte [esp + 0x160]
mov byte [edx + 0x20], al
mov al, byte [esp + 0xec]
mov byte [edx + 0x21], al
movzx eax, word [esp + 0x7c]
mov word [edx + 0x22], ax
mov byte [edx + 0x24], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x23]
mov dword [edx + 0x28], ecx
mov dword [edx + 0x25], eax
mov dword [edx + 0x2c], 0
mov byte [edx + 0x30], 0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x83]
mov dword [edx + 0x31], eax
mov dword [edx + 0x34], ecx
mov dword [edx + 0x38], 0
mov byte [edx + 0x3c], 0
movzx eax, word [esp + 0x140]
mov word [edx + 0x3d], ax
mov al, byte [esp + 0x142]
mov byte [edx + 0x3f], al
mov byte [edx + 0x40], 0
movzx eax, word [esp + 0x134]
mov word [edx + 0x41], ax
mov al, byte [esp + 0x136]
mov byte [edx + 0x43], al
lock inc dword [edx]
mov esi, dword [esp + 0x10]
jle 0x10069522
mov eax, dword [0x104debf8]
cmp eax, 5
jb 0x1006812f
mov eax, dword [0x104debfc]
mov eax, dword [0x104d53e8]
mov dword [esp + 0x74], edx
dec eax
cmp eax, 5
jb 0x1006824c
mov ecx, dword [0x104d4de0]
test ecx, ecx
je 0x1006824c
mov al, 1
cmp ecx, 1
je 0x10068162
cmp ecx, 2
jne 0x1006946e
mov al, 2
movzx edx, al
mov ecx, 0x104d4de0
call fcn.10109d10
test al, al
je 0x1006824c
mov ecx, dword [0x104d4de4]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x10069592
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0x80], 0
mov dword [esp + 0x20], 0x1041fcf8
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x84], edx
lea edx, [esp + 0x164]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], esi
lea esi, [esp + 0x80]
mov dword [esp + 0x90], edi
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x140], esi
lea esi, [esp + 0x140]
mov dword [esp + 0x34], 1
mov dword [esp + 0x134], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x138], 1
mov dword [esp + 0x144], edx
lea edx, [ecx + 0x2c]
mov dword [esp + 0x148], 0x10419960
mov dword [esp + 0x13c], edx
lea edx, [esp + 0x134]
mov dword [esp + 0x164], esi
mov dword [esp + 0x168], 0x100619e0
call fcn.1010a570
movzx eax, byte [esi]
xor edi, edi
test eax, eax
je 0x10068448
cmp eax, 1
je 0x10068436
call sub.KERNEL32.dll_GetProcessHeap
push 0x10
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x10069574
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx + 4]
mov ecx, dword [esi + 0xc]
lea edx, [esi + 8]
push dword [esi + 4]
push dword [esi]
push edx
mov dword [esp + 0xc], eax
push eax
call dword [ecx]
add esp, 0x10
mov eax, 2
jmp 0x1006844e
mov eax, dword [esp]
mov ecx, dword [esp + 0x20c]
mov esi, dword [esp + 0x1c]
pcmpeqd xmm1, xmm1
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x44]
mov edx, eax
sub edx, ecx
sar edx, 2
imul edi, edx, 0x38e38e39
lea edx, [edi - 0x10]
movdqu xmm2, xmmword [eax + edi]
mov dword [esp], edi
mov di, 0x10
and edx, dword [esi + 0x40]
mov si, 0x10
pcmpeqb xmm2, xmm1
movdqu xmm0, xmmword [eax + edx]
pmovmskb ebx, xmm2
pcmpeqb xmm0, xmm1
pmovmskb ecx, xmm0
test cx, cx
je 0x100682fc
bsr si, cx
xor esi, 0xf
test bx, bx
je 0x10068305
bsf di, bx
movzx edi, di
mov cl, 0x80
add edi, esi
mov esi, dword [esp + 0x1c]
cmp di, 0xf
ja 0x1006831b
inc dword [esi + 0x48]
mov cl, 0xff
mov edi, dword [esp]
mov byte [eax + edi], cl
mov byte [edx + eax + 0x10], cl
dec dword [esi + 0x4c]
mov ecx, dword [esp + 0x64]
movsd xmm0, qword [ecx]
movq xmm1, qword [ecx + 8]
movsd qword [esp + 0x80], xmm0
mov eax, dword [ecx + 0x20]
mov dword [esp + 0xa0], eax
mov al, byte [esp + 0x80]
movsd xmm0, qword [ecx + 0x18]
cmp al, 3
movsd qword [esp + 0x98], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [esp + 0x88], xmm1
movq qword [esp + 0x90], xmm0
je 0x10068009
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
cmp al, 2
mov dword [esp], ecx
jb 0x100683bf
mov esi, dword [esp + 0x84]
mov eax, dword [esi + 0xc]
lea ecx, [esi + 8]
push dword [esi + 4]
push dword [esi]
push ecx
call dword [eax + 4]
add esp, 0xc
call sub.KERNEL32.dll_GetProcessHeap
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x90]
push dword [esp + 0x8c]
push dword [esp + 0x8c]
push ecx
call dword [eax + 4]
add esp, 0xc
cmp dword [esp], 0
je 0x10068009
test edi, edi
je 0x1006840b
mov eax, dword [esp]
shl edi, 4
lea edi, [edi + edi*2]
lea esi, [eax + 0x10]
mov ecx, esi
call fcn.1005fe10
add esi, 0x30
add edi, 0xffffffd0
jne 0x100683fc
test ebx, ebx
je 0x10068009
shl ebx, 4
lea eax, [ebx + ebx*2]
test eax, eax
je 0x10068009
call sub.KERNEL32.dll_GetProcessHeap
push dword [esp]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
jmp 0x10068009
mov ebx, dword [esp + 0x10]
mov eax, 1
movzx edi, byte [ebx + 1]
shl edi, 8
jmp 0x1006844e
mov ebx, dword [esp + 0x10]
xor eax, eax
mov esi, dword [esp + 0x1c]
or edi, eax
lea edx, [ebx + 0x10]
mov dword [esp + 0x140], edi
lea eax, [esi + 0x50]
mov dword [esp + 0x160], eax
mov eax, dword [esp]
mov dword [esp + 0x144], eax
lea eax, [esp + 0x148]
mov ecx, dword [ebx + 0x14]
push dword [ebx + 0xc]
push dword [ebx + 8]
push edx
push eax
call dword [ecx]
add esp, 0x10
movsd xmm0, qword [esp + 0x150]
movq xmm2, qword [esp + 0x140]
movsd xmm1, qword [esp + 0x148]
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x88], xmm1
movq qword [esp + 0x80], xmm2
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x58]
mov esi, dword [esi + 0x5c]
mov edi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
xor eax, 0x6e657261
xor edi, 0x70736575
mov dword [esp + 0x30], edi
mov edi, ecx
xor ecx, 0x6c796765
xor edi, 0x736f6d65
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], eax
mov eax, edx
mov dword [esp + 0x3c], ecx
mov ecx, esi
xor edx, 0x79746573
xor esi, 0x74656462
xor eax, 0x6e646f6d
xor ecx, 0x646f7261
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], edx
lea ecx, [esp + 0x80]
lea edx, [esp + 0x20]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
call fcn.10062170
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
pcmpeqd xmm2, xmm2
mov dword [esp + 0x6c], 0x10
shl edx, 0x18
mov dword [esp + 8], eax
xor ebx, esi
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x34]
or edx, dword [esp + 0x54]
mov dword [esp + 4], edx
xor ecx, edx
mov edx, dword [esp + 0x30]
add edx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 8]
adc esi, edi
mov dword [esp], esi
shld eax, edi, 0xd
shld edi, edx, 0xd
mov edx, dword [esp + 0xc]
xor edi, esi
mov esi, dword [esp + 0x3c]
xor eax, edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
add eax, ebx
mov dword [esp + 8], eax
mov eax, ebx
adc esi, ecx
shrd ebx, ecx, 0x10
shld eax, ecx, 0x10
xor ebx, esi
xor eax, dword [esp + 8]
add dword [esp], eax
mov ecx, eax
adc edx, ebx
shrd eax, ebx, 0xb
shld ecx, ebx, 0x15
xor eax, edx
xor ecx, dword [esp]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x60]
add dword [esp + 8], eax
mov ebx, eax
adc esi, edi
shld ebx, edi, 0x11
shrd eax, edi, 0xf
mov edi, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0xf0], ebx
xor eax, esi
xor edi, dword [esp + 4]
xor esi, 0xff
mov ebx, dword [esp + 0xf0]
mov dword [esp + 4], esi
xor dword [esp], edx
mov edx, ecx
xor ebx, dword [esp + 8]
add dword [esp], ebx
mov esi, ebx
adc edi, eax
shrd ebx, eax, 0x13
shld esi, eax, 0xd
mov eax, dword [esp + 0x68]
xor ebx, edi
mov dword [esp + 0xc], edi
mov edi, dword [esp + 8]
xor esi, dword [esp]
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 4]
add ebx, ecx
adc edi, eax
shld edx, eax, 0x10
shrd ecx, eax, 0x10
mov dword [esp + 4], ebx
xor edx, ebx
mov ebx, dword [esp + 0xc]
xor ecx, edi
mov dword [esp + 8], edi
mov edi, dword [esp]
mov eax, edx
add ebx, edx
adc edi, ecx
shld eax, ecx, 0x15
shrd edx, ecx, 0xb
mov ecx, ebx
mov dword [esp + 0xc], ebx
mov ecx, esi
xor eax, ebx
xor edx, edi
mov dword [esp], edi
add dword [esp + 4], esi
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0xf0]
adc edi, ebx
shrd esi, ebx, 0xf
shld ecx, ebx, 0x11
mov dword [esp + 8], edi
xor esi, edi
mov edi, dword [esp + 4]
xor ecx, edi
add dword [esp + 0xc], ecx
mov ebx, ecx
adc dword [esp], esi
shrd ecx, esi, 0x13
shld ebx, esi, 0xd
mov esi, dword [esp + 0xc]
xor ecx, dword [esp]
xor ebx, esi
add dword [esp + 8], eax
adc edi, edx
mov dword [esp + 4], edi
mov edi, eax
shrd eax, edx, 0x10
shld edi, edx, 0x10
xor eax, dword [esp + 4]
xor edi, dword [esp + 8]
add dword [esp], edi
mov edx, edi
adc esi, eax
shld edx, eax, 0x15
shrd edi, eax, 0xb
mov eax, dword [esp + 4]
xor edi, esi
xor edx, dword [esp]
add dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov esi, ebx
adc eax, ecx
shld esi, ecx, 0x11
shrd ebx, ecx, 0xf
mov ecx, dword [esp]
xor esi, dword [esp + 8]
xor ebx, eax
mov dword [esp + 4], eax
add ecx, esi
mov eax, esi
adc dword [esp + 0xc], ebx
shld eax, ebx, 0xd
shrd esi, ebx, 0x13
mov ebx, dword [esp + 8]
xor eax, ecx
xor esi, dword [esp + 0xc]
add dword [esp + 4], edx
mov ecx, edx
adc ebx, edi
shrd edx, edi, 0x10
shld ecx, edi, 0x10
mov edi, dword [esp + 4]
xor edx, ebx
xor ecx, edi
shld ecx, edx, 0x15
mov edx, dword [esp + 0x1c]
add edi, eax
adc ebx, esi
shrd esi, eax, 0xf
xor esi, ecx
xor esi, ebx
mov ecx, dword [edx + 0x60]
xor esi, edi
mov eax, esi
shr eax, 0x19
movd xmm0, eax
mov dword [esp + 0x15c], eax
mov al, byte [esp + 0x80]
mov ebx, ecx
mov dword [esp + 0xc], ecx
punpcklbw xmm0, xmm0
and ebx, esi
pshuflw xmm0, xmm0, 0xe0
lea edi, [ebx + 0x10]
pshufd xmm0, xmm0, 0
mov dword [esp + 0xf0], ebx
and edi, ecx
mov ecx, dword [edx + 0x64]
mov byte [esp + 0x18], al
mov al, byte [esp + 0x81]
movdqa xmm3, xmm0
mov dword [esp + 0xec], edi
mov edi, edx
movdqu xmm1, xmmword [ecx + ebx]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x84]
lea ebx, [edi + 0x60]
mov edi, dword [esp + 0x88]
mov byte [esp + 0xe8], al
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x8c]
pcmpeqb xmm3, xmm1
mov dword [esp + 8], edi
pmovmskb edx, xmm3
mov dword [esp], ecx
test dx, dx
je 0x1006886b
mov eax, edx
lea edx, [eax - 1]
and edx, eax
bsf ax, ax
movzx eax, ax
add eax, dword [esp + 0xf0]
and eax, dword [esp + 0xc]
neg eax
lea ecx, [eax + eax*4]
mov eax, dword [esp + 4]
movzx eax, byte [eax + ecx*8 - 0x28]
cmp eax, 1
je 0x1006892f
cmp eax, 2
je 0x100688be
test eax, eax
je 0x10069516
cmp byte [esp + 0x18], 0
jne 0x1006881d
jmp 0x10069516
mov ecx, dword [esp + 0xec]
pcmpeqb xmm1, xmm2
pmovmskb eax, xmm1
test ax, ax
jne 0x100689d3
mov edx, dword [esp + 0x6c]
movdqa xmm3, xmm0
mov dword [esp + 0xf0], ecx
lea eax, [ecx + edx + 0x10]
add edx, 0x10
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 4]
and eax, dword [esp + 0xc]
movdqu xmm1, xmmword [edx + ecx]
mov dword [esp + 0xec], eax
pcmpeqb xmm3, xmm1
pmovmskb edx, xmm3
jmp 0x1006881d
mov al, byte [esp + 0x18]
cmp al, 2
jne 0x10068937
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], ecx
mov eax, dword [eax + ecx*8 - 0x24]
mov ecx, dword [esp + 0x60]
mov edi, dword [eax + 4]
cmp edi, dword [ecx + 4]
jne 0x1006881d
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov dword [esp + 0x70], eax
cmp edi, ecx
je 0x10068974
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x70]
movzx eax, byte [eax + ecx]
mov bh, byte [ebx + ecx]
inc ecx
mov bl, al
add bl, 0xbf
cmp bl, 0x1a
setb ah
shl ah, 5
or ah, al
mov al, bh
add al, 0xbf
cmp al, 0x1a
setb al
shl al, 5
or al, bh
cmp ah, al
je 0x100688f4
jmp 0x1006881d
mov al, byte [esp + 0x18]
cmp al, 1
je 0x10068944
test al, al
jne 0x1006881d
jmp 0x10069516
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], ecx
lea eax, [eax + ecx*8 - 0x28]
cmp byte [eax + 1], 1
jne 0x10068966
cmp byte [esp + 0xe8], 0
je 0x1006881d
jmp 0x10068974
cmp byte [esp + 0xe8], 0
jne 0x1006881d
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x7c]
cmp dword [ecx + edi*8 - 0x1c], eax
jne 0x1006881d
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x7c]
mov edi, dword [eax + ecx*8 - 0x20]
xor ecx, ecx
cmp dword [esp], ecx
je 0x10069215
movzx eax, byte [edi + ecx]
mov ebx, dword [esp + 8]
mov ah, al
mov bh, byte [ebx + ecx]
inc ecx
add ah, 0xbf
cmp ah, 0x1a
setb ah
shl ah, 5
or ah, al
mov al, bh
add al, 0xbf
cmp al, 0x1a
setb al
shl al, 5
or al, bh
cmp ah, al
je 0x10068997
jmp 0x1006881d
mov eax, dword [esp + 0x160]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x134], eax
cmp dword [edi + 0x68], 0
je 0x100691ef
mov eax, dword [esp + 0x80]
mov dword [esp + 0x68], eax
mov al, byte [esp + 0x89]
mov byte [esp + 0xf0], al
movzx eax, word [esp + 0x8a]
mov word [esp + 0x18], ax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], eax
call sub.KERNEL32.dll_GetProcessHeap
push 0x20
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
mov dword [esp + 0x70], eax
je 0x1006952d
mov edx, dword [edi + 0x60]
mov ecx, dword [edi + 0x64]
xor edi, edi
nop
mov ebx, esi
and ebx, edx
movdqu xmm0, xmmword [ecx + ebx]
lea esi, [edi + ebx + 0x10]
add edi, 0x10
pmovmskb eax, xmm0
test ax, ax
je 0x10068a50
bsf ax, ax
movzx eax, ax
add ebx, eax
and ebx, edx
mov al, byte [ecx + ebx]
test al, al
jns 0x1006949c
mov edi, dword [esp + 0x1c]
and al, 1
neg al
movsx eax, al
add dword [edi + 0x68], eax
lea eax, [ebx - 0x10]
and eax, edx
mov edx, dword [esp + 0x15c]
mov esi, dword [esp + 4]
mov byte [ecx + ebx], dl
mov byte [eax + ecx + 0x10], dl
mov edx, dword [esp + 0x68]
neg ebx
lea eax, [ebx + ebx*4]
mov ebx, dword [esp]
mov dword [ecx + eax*8 - 0x28], edx
mov edx, dword [esp + 0x60]
mov dword [ecx + eax*8 - 0x24], edx
mov edx, dword [esp + 8]
mov byte [ecx + eax*8 - 0x20], dl
mov dl, byte [esp + 0xf0]
mov byte [ecx + eax*8 - 0x1f], dl
movzx edx, word [esp + 0x18]
mov word [ecx + eax*8 - 0x1e], dx
mov dword [ecx + eax*8 - 0x1c], ebx
mov dword [ecx + eax*8 - 0x18], esi
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x70]
mov dword [ecx + eax*8 - 0x14], ebx
mov dword [ecx + eax*8 - 0x10], 0
mov dword [ecx + eax*8 - 0xc], 0
mov dword [ecx + eax*8 - 8], esi
mov dword [ecx + eax*8 - 4], 8
inc dword [edi + 0x6c]
lea esi, [ecx + eax*8 - 0x10]
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov edi, eax
lea ecx, [edx - 1]
sub edi, dword [esi]
and edi, ecx
sub edx, edi
cmp edx, 1
jne 0x10068b34
mov ecx, esi
call fcn.100d72a0
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 4]
dec ecx
lea edx, [eax + 1]
mov edi, dword [esp + 0x74]
and edx, ecx
mov dword [esi + 4], edx
mov ecx, dword [esi + 8]
mov dword [ecx + eax*4], edi
mov al, byte [edi + 0x40]
test al, al
jne 0x10068c26
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
push dword [eax]
call dword [ecx]
add esp, 4
mov cl, 1
mov esi, eax
mov ebx, edx
xchg byte [edi + 0x30], cl
test cl, cl
je 0x10068c00
push esi
call dword [ebx + 0xc]
add esp, 4
jmp 0x10068c26
call fcn.100fa7c0
xor al, 1
mov dword [esp + 0x16c], eax
jmp 0x10066b38
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov bl, byte [esp + 0xc8]
mov bh, byte [esp + 0xc9]
movzx eax, word [esp + 0xca]
mov edi, dword [esp + 0xd0]
mov esi, dword [esp + 0xd4]
cmp dword [esp + 0xcc], 1
mov word [esp + 0x60], ax
mov byte [esp + 0x74], bl
mov byte [esp + 0x18], bh
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], edx
mov dword [esp], esi
mov dword [esp + 8], edi
jne 0x100691d9
test ecx, ecx
je 0x100692bf
push ecx
call dword [edx + 0xc]
add esp, 4
jmp 0x100692c1
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x10068c10
push dword [edi + 0x28]
call dword [eax + 0xc]
add esp, 4
mov dword [edi + 0x28], esi
mov dword [edi + 0x2c], ebx
xor eax, eax
xchg byte [edi + 0x30], al
mov al, byte [edi + 0x40]
test al, al
je 0x1006920c
mov al, 1
xchg byte [edi + 0x24], al
test al, al
jne 0x10069539
mov dl, byte [edi + 0x10]
mov eax, dword [edi + 8]
mov esi, dword [edi + 0xc]
movzx ecx, word [edi + 0x12]
mov bh, byte [edi + 0x11]
mov byte [esp + 4], dl
mov edx, dword [edi + 0x14]
mov dword [esp], eax
mov dword [esp + 8], esi
mov word [esp + 0xc], cx
mov dword [edi + 0x14], 2
cmp edx, 2
je 0x10069534
mov eax, dword [edi + 0x20]
mov esi, dword [esp]
mov ecx, dword [edi + 0x1c]
mov bl, byte [esp + 4]
mov dword [esp + 0xf0], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x24], esi
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], bh
movzx ebx, word [esp + 0xc]
mov word [esp + 0x2a], bx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
xor eax, eax
xchg byte [edi + 0x24], al
mov ebx, dword [esp + 0x2c]
test bl, 2
jne 0x10068cc9
lea ecx, [esp + 0x20]
call fcn.1005fe10
mov ecx, dword [esp + 0x14]
cmp ebx, 3
jne 0x10069539
mov esi, dword [ecx]
test esi, esi
je 0x10068d51
mov al, 1
mov bl, 1
xchg byte [esi + 0x40], al
mov al, 1
xchg byte [esi + 0x30], al
test al, al
jne 0x10068d11
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x2c]
xor edx, edx
mov dword [esi + 0x2c], 0
xchg byte [esi + 0x30], dl
mov ecx, dword [esp + 0x14]
test edi, edi
je 0x10068d11
push eax
call dword [edi + 0xc]
mov ecx, dword [esp + 0x18]
add esp, 4
xchg byte [esi + 0x3c], bl
test bl, bl
jne 0x10068d3d
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 0x38]
xor edx, edx
mov dword [esi + 0x38], 0
xchg byte [esi + 0x3c], dl
mov ecx, dword [esp + 0x14]
test edi, edi
je 0x10068d3d
push eax
call dword [edi + 4]
mov ecx, dword [esp + 0x18]
add esp, 4
mov eax, dword [ecx]
lock dec dword [eax]
mov edi, dword [esp + 0x74]
jne 0x10068d51
call fcn.100620a0
mov ecx, dword [esp + 0x14]
mov dword [ecx], edi
movsd xmm1, qword [esp + 0x110]
mov ecx, dword [esp + 0x1f0]
mov eax, dword [esp + 0x120]
cmp dword [esp + 0xcc], 2
movsd xmm0, qword [esp + 0x118]
movsd xmm3, qword [esp + 0x108]
movsd xmm2, qword [esp + 0x1a0]
movsd qword [esp + 0x1c8], xmm1
movsd xmm1, qword [esp + 0x1a8]
mov dword [esp + 0x1d8], eax
setne al
not cl
movsd qword [esp + 0x1d0], xmm0
movsd qword [esp + 0x1c0], xmm3
movsd qword [esp + 0x210], xmm2
test cl, al
movsd qword [esp + 0x218], xmm1
je 0x10068ddf
lea ecx, [esp + 0xc0]
call fcn.1005fe10
cmp byte [esp + 0x16c], 0
mov esi, dword [esp + 0x1c]
jne 0x10068dfa
mov eax, dword [0x104dec50]
test eax, eax
jne 0x100691c3
mov eax, dword [esp + 0x1b0]
mov esi, dword [eax]
mov eax, dword [0x104dec60]
mov edi, dword [esp + 0x10]
test eax, eax
je 0x10068e25
cmp eax, 0x100f30b0
jne 0x10068e4a
mov eax, dword [esi]
mov byte [eax + 0x18], 0
push eax
call sub.KERNEL32.dll_LeaveCriticalSection
jmp 0x10068e74
mov ecx, 0x10421629
mov edx, 0x17
call fcn.100f2ce0
test eax, eax
mov eax, 0x100f30b0
cmovne eax, edx
mov dword [0x104dec60], eax
cmp eax, 0x100f30b0
je 0x10068e17
mov eax, dword [0x104dec78]
test eax, eax
jne 0x10068e71
mov ecx, 0x10421918
mov edx, 0x17
call fcn.100f2ce0
test eax, eax
mov eax, 0x100f4ef0
cmovne eax, edx
mov dword [0x104dec78], eax
push esi
call eax
movsd xmm1, qword [esp + 0x1c8]
movsd xmm0, qword [esp + 0x1c0]
mov eax, dword [esp + 0x1d8]
movsd xmm2, qword [esp + 0x210]
cmp byte [esp + 0x190], 0
mov ecx, dword [esp + 0x78]
movsd qword [esp + 0x110], xmm1
movsd xmm1, qword [esp + 0x1d0]
movsd qword [esp + 0x108], xmm0
mov dword [esp + 0x120], eax
movsd qword [esp + 0x140], xmm2
movsd qword [esp + 0x118], xmm1
movsd xmm1, qword [esp + 0x218]
movsd qword [esp + 0x148], xmm1
je 0x10068f67
mov dword [esp + 0x2c], 3
mov cl, 1
mov eax, 3
test cl, cl
jne 0x10069010
mov ecx, dword [esp + 0xac]
movsd xmm1, qword [esp + 0x28]
movsd xmm2, qword [esp + 0x38]
movsd xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x58]
mov dword [ecx], 0
movsd qword [ecx + 0xc], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [ecx + 0x1c], xmm2
movsd xmm2, qword [esp + 0x48]
movsd qword [ecx + 4], xmm0
mov dword [ecx + 0x3c], eax
movsd qword [ecx + 0x14], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [ecx + 0x2c], xmm2
movsd qword [ecx + 0x24], xmm1
movsd xmm1, qword [esp + 0x50]
movsd qword [ecx + 0x34], xmm1
jmp 0x1006912f
mov eax, dword [esp + 0x120]
movsd xmm1, qword [esp + 0x108]
movsd xmm0, qword [esp + 0x118]
movsd xmm2, qword [esp + 0x110]
mov edx, dword [esp + 0x1b4]
mov dword [esp + 0x98], eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x148]
movsd qword [esp + 0x80], xmm1
movsd xmm1, qword [esp + 0x140]
movsd qword [esp + 0xb0], xmm0
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0x20]
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x88], xmm2
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xb0]
movsd qword [esp + 0xc0], xmm1
push eax
push edi
call fcn.100d6430
add esp, 8
mov eax, dword [esp + 0x2c]
cmp eax, 3
sete cl
test cl, cl
je 0x10068f01
mov ecx, dword [esp + 0x1b4]
cmp dword [ecx], 0
je 0x10069037
mov ecx, dword [esp + 0xac]
mov dword [ecx], 2
cmp eax, 3
jne 0x10069126
jmp 0x1006912f
call sub.KERNEL32.dll_GetProcessHeap
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100694b3
mov ecx, str.pool_is_disabledcheckout_waiting_for_idle_connection:_removing_expired_connection_for_removing_closed_connection_for_take__:_expiration_
mov edx, 0x10
mov dword [eax], 0
mov edi, eax
mov byte [eax + 8], 4
call fcn.1004c640
mov ebx, dword [edi]
mov dword [esp], eax
test ebx, ebx
je 0x1006909f
mov esi, dword [edi + 4]
push ebx
call dword [esi]
add esp, 4
cmp dword [esi + 4], 0
je 0x1006909f
cmp dword [esi + 8], 9
jae 0x1006908f
call sub.KERNEL32.dll_GetProcessHeap
push ebx
jmp 0x10069097
call sub.KERNEL32.dll_GetProcessHeap
push dword [ebx - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp]
mov dword [edi], eax
mov dword [edi + 4], 0x1041909c
mov eax, dword [esp + 0xac]
movsd xmm2, qword [esp + 0xd8]
movsd xmm1, qword [esp + 0xd0]
movq xmm0, qword [esp + 0xe0]
mov dword [eax], 1
mov dword [eax + 4], edi
movsd qword [eax + 0x30], xmm2
movsd qword [eax + 0x28], xmm1
movsd xmm2, qword [esp + 0xc8]
movsd xmm1, qword [esp + 0xc0]
movq qword [eax + 0x38], xmm0
movsd qword [eax + 0x20], xmm2
movsd qword [eax + 0x18], xmm1
movq xmm2, qword [esp + 0xb0]
movq xmm1, qword [esp + 0xb8]
movq qword [eax + 0x10], xmm1
movq qword [eax + 8], xmm2
mov eax, dword [esp + 0x2c]
cmp eax, 3
je 0x1006912f
lea ecx, [esp + 0x20]
call fcn.1005f910
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp]
mov eax, dword [esp + 8]
lea ecx, [esp + 0x170]
mov dword [edi], eax
mov dword [edi + 4], 0x1041909c
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x30]
mov eax, dword [esp + 0x48]
movq xmm0, qword [esp + 0x40]
movsd qword [esp + 0xc8], xmm2
movsd qword [esp + 0xc0], xmm1
movq xmm2, qword [esp + 0x20]
movq xmm1, qword [esp + 0x28]
mov dword [esp + 0xd8], eax
movq qword [esp + 0xd0], xmm0
movq qword [esp + 0xb8], xmm1
movq qword [esp + 0xb0], xmm2
call fcn.1005fe10
mov edi, 1
jmp 0x100671f6
call fcn.100fa7c0
test al, al
jne 0x10068dfa
mov byte [esi + 0xc], 1
jmp 0x10068dfa
mov eax, dword [esp + 0xd8]
mov esi, ecx
mov edi, edx
mov dword [esp + 4], eax
xor eax, eax
jmp 0x10069351
mov edx, dword [esp + 0x64]
lea eax, [esp + 0x134]
lea ecx, [esp + 0x20]
push eax
call fcn.100d6770
add esp, 4
jmp 0x100689ef
mov ecx, dword [esp + 0x14]
jmp 0x10068cd6
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x90]
mov edi, dword [esp]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x64]
cmp cl, 3
mov dword [esp + 0x34], edx
mov edx, dword [esp + 4]
lea edx, [edx + ebx*8]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edi
je 0x100692b2
lea edi, [esp + 0x30]
cmp cl, 2
jb 0x100692a3
mov eax, dword [esi + 0xc]
lea ecx, [esi + 8]
push dword [esi + 4]
push dword [esi]
push ecx
call dword [eax + 4]
add esp, 0xc
call sub.KERNEL32.dll_GetProcessHeap
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x34]
push dword [esp]
push eax
push edi
call dword [ecx + 4]
add esp, 0xc
mov eax, dword [esp + 4]
lea esi, [eax + ebx*8 - 0x10]
jmp 0x10068b10
xor eax, eax
lock inc dword [edi]
jle 0x10069522
mov dword [esp + 0x190], eax
lock inc dword [esi + 0x20]
lock inc dword [esi]
jle 0x10069522
mov eax, dword [esp + 0x1bc]
mov ebx, edi
mov edi, edx
mov dword [esp + 4], eax
call fcn.100fe060
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov cl, byte [esp + 0x74]
mov dl, byte [esp + 0x18]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], eax
mov byte [esp + 0x38], cl
movzx ecx, word [esp + 0x60]
mov byte [esp + 0x39], dl
lea edx, [esp + 0x20]
mov word [esp + 0x3a], cx
mov ecx, dword [esp + 4]
mov dword [esp + 0x3c], 1
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
call fcn.100636d0
mov esi, dword [esp + 0x190]
mov eax, 1
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x78], eax
mov dword [esp + 0x190], 0
mov dword [esp + 0xb0], ecx
mov cl, byte [esp + 0x74]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], edi
mov byte [esp + 0xc8], cl
mov cl, byte [esp + 0x18]
mov byte [esp + 0xc9], cl
movzx ecx, word [esp + 0x60]
mov word [esp + 0xca], cx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xd0], eax
mov eax, dword [esp]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 4]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xf0]
cmp dword [eax + ecx*4 - 4], 0
lea eax, [esp + 0x80]
sete byte [esp + 0xe0]
sete cl
movsd xmm2, qword [esp + 0xb8]
movsd xmm1, qword [esp + 0xc0]
mov edx, dword [esp + 0xc8]
movq xmm0, qword [esp + 0xb0]
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x30], xmm1
movq xmm2, qword [esp + 0xd0]
movq xmm1, qword [esp + 0xd8]
mov dword [esp + 0x38], edx
mov dl, 1
movq qword [esp + 0x20], xmm0
mov dword [esp + 0x1f0], edx
movq qword [esp + 0x80], xmm2
movq qword [esp + 0x88], xmm1
jmp 0x10067bc5
mov ecx, 0x104d4de0
call fcn.10109c60
test al, al
jne 0x10068162
jmp 0x1006824c
mov ecx, 0x104d4dd4
call fcn.10109c60
test al, al
jne 0x100675e7
jmp 0x100676ea
movdqa xmm0, xmmword [ecx]
pmovmskb eax, xmm0
bsf ax, ax
movzx ebx, ax
mov al, byte [ecx + ebx]
jmp 0x10068a7f
mov ecx, 0xc
mov edx, 4
call fcn.10006540
ud2
mov eax, dword [esp + 0x1b0]
mov ecx, 0x1044a65b
mov edx, 0x2b
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x16c]
mov byte [esp + 0x24], al
lea eax, [esp + 0x20]
push 0x1041fc98
push 0x1041a884
push eax
call fcn.1000a790
add esp, 0xc
ud2
mov ecx, 0x10422dcf
mov edx, 0x23
push 0x10422df4
call fcn.1000a730
add esp, 4
ud2
mov ecx, 0x10400e68
call fcn.100329a0
ud2
ud2
mov ecx, 0x44
jmp 0x100694b8
mov ecx, 0x20
jmp 0x100694b8
xor eax, eax
xchg byte [edi + 0x24], al
mov ecx, str.assertion_failed:_Pin::new_mut_rx_.poll_cx_.is_pending__
mov edx, 0x39
push 0x1041fd4c
call fcn.1004d560
add esp, 4
ud2
mov ecx, 0x1041992d
mov edx, 0x22
push 0x1041fce8
jmp 0x1006950c
mov ecx, 0x1041992d
mov edx, 0x22
push 0x1041fcd0
jmp 0x1006950c
mov ecx, 0x10
jmp 0x100694b8
mov ecx, 0x1041992d
mov edx, 0x22
push 0x1041fcb8
jmp 0x1006950c
mov ecx, 0x1041992d
mov edx, 0x22
push 0x1041fd00
jmp 0x1006950c