Function at 0x49b8d0
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
push ebx
mov dword [ebp - 0x18], ecx
xorps xmm0, xmm0
mov ecx, dword [0x7efe64]
mov dword [ebp - 0x14], edx
push esi
push edi
movups xmmword [ebp - 0x54], xmm0
test ecx, ecx
jne 0x49b8fd
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edi, edi
movlpd qword [ebp - 0x3c], xmm0
movlpd qword [ebp - 0x44], xmm0
cmp dword [0x7efe40], edi
jne 0x49b923
mov ebx, dword [0x7efe44]
test ebx, ebx
jne 0x49b923
mov edx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x54]
jmp 0x49b9a1
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov ecx, dword [ebp - 0x3c]
sub ecx, dword [0x7efe48]
mov eax, dword [ebp - 0x38]
sbb eax, dword [0x7efe4c]
push 0
push 0x3b9aca00
push eax
push ecx
call fcn.006dbcd0
mov ebx, dword [0x7efe44]
push ebx
push dword [0x7efe40]
push edx
push eax
call fcn.006dc0b0
mov edi, eax
add eax, dword [0x7efe38]
push 0
adc edx, dword [0x7efe3c]
push 0x3b9aca00
push edx
push eax
call fcn.006dc0b0
mov ecx, dword [0x7efe64]
mov dword [ebp - 8], eax
mov esi, dword [ebp - 8]
imul eax, eax, 0x3b9aca00
sub edi, eax
add edi, dword [0x7efe38]
mov eax, edx
mov edx, 0x3b9aca00
mul edx
mov edx, 0x3b9aca00
mov dword [ebp - 0x2c], eax
mov eax, esi
mov esi, dword [ebp - 0x2c]
mul edx
mov dword [ebp - 0x28], eax
add esi, edx
mov eax, edi
mov edi, dword [ebp - 0x28]
cdq
add edi, eax
mov dword [ebp - 0x28], edi
adc esi, edx
mov edx, dword [0x7efe60]
mov dword [ebp - 0x2c], esi
test edx, edx
je 0x49b9ed
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [0x7efe44]
mov ecx, dword [0x7efe64]
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
ja case.default.0x49b9f9
jmp dword [eax*4 + 0x49d660]
mov eax, dword [ecx]
add dword [eax + 8], 1
adc dword [eax + 0xc], 0
mov eax, dword [ecx]
add dword [eax], 1
adc dword [eax + 4], 0
mov eax, dword [ecx]
mov dword [eax + 0x38], edi
mov dword [eax + 0x3c], esi
jmp case.default.0x49b9f9
push dword [0x7eca5c]
mov edx, dword [ecx]
mov ecx, 1
push dword [ebp + 0x10]
push dword [ebp + 0xc]
mov edx, dword [edx + 0x40]
push dword [ebp - 0x14]
call fcn.0049a9d0
add esp, 0x10
jmp case.default.0x49b9f9
push dword [0x7eca64]
mov edx, dword [ecx]
mov ecx, 2
push dword [ebp + 0x10]
push dword [ebp + 0xc]
mov edx, dword [edx + 0x44]
push dword [ebp + 8]
call fcn.0049a9d0
add esp, 0x10
jmp case.default.0x49b9f9
mov eax, dword [ecx]
add dword [eax + 8], 0xffffffff
adc dword [eax + 0xc], 0xffffffff
mov eax, dword [ecx]
mov dword [eax + 0x38], edi
mov dword [eax + 0x3c], esi
jmp case.default.0x49b9f9
push dword [0x7eca5c]
mov edx, dword [ecx]
mov ecx, 4
push dword [ebp + 0x10]
push dword [ebp + 0xc]
mov edx, dword [edx + 0x40]
push dword [ebp - 0x14]
call fcn.0049a9d0
add esp, 0x10
jmp case.default.0x49b9f9
push dword [0x7eca64]
mov edx, dword [ecx]
mov ecx, 5
push dword [ebp + 0x10]
push dword [ebp + 0xc]
mov edx, dword [edx + 0x44]
push dword [ebp + 8]
call fcn.0049a9d0
add esp, 0x10
jmp case.default.0x49b9f9
mov eax, dword [ecx]
push dword [0x7eca5c]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
mov eax, dword [ecx]
mov dword [eax + 0x38], edi
mov edi, dword [ebp + 0x10]
mov dword [eax + 0x3c], esi
mov edx, dword [ecx]
mov ecx, 6
mov esi, dword [ebp + 0xc]
push edi
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 6
push dword [0x7eca64]
push edi
mov edx, dword [eax]
jmp 0x49d632
mov eax, dword [ecx]
push dword [0x7eca5c]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [ecx]
mov dword [eax + 0x38], edi
mov edi, dword [ebp + 0x10]
mov dword [eax + 0x3c], esi
mov edx, dword [ecx]
mov ecx, 7
mov esi, dword [ebp + 0xc]
push edi
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 7
push dword [0x7eca64]
push edi
mov edx, dword [eax]
jmp 0x49d632
mov eax, dword [ecx]
push dword [0x7eca5c]
add dword [eax + 0x20], 1
adc dword [eax + 0x24], 0
mov eax, dword [ecx]
mov dword [eax + 0x38], edi
mov edi, dword [ebp + 0x10]
mov dword [eax + 0x3c], esi
mov edx, dword [ecx]
mov ecx, 8
mov esi, dword [ebp + 0xc]
push edi
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 8
push dword [0x7eca64]
push edi
mov edx, dword [eax]
jmp 0x49d632
mov eax, dword [ecx]
push dword [0x7eca5c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, dword [ecx]
mov dword [eax + 0x38], edi
mov edi, dword [ebp + 0x10]
mov dword [eax + 0x3c], esi
mov edx, dword [ecx]
mov ecx, 9
mov esi, dword [ebp + 0xc]
push edi
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 9
push dword [0x7eca64]
push edi
mov edx, dword [eax]
jmp 0x49d632
mov edi, dword [0x7efe64]
xorps xmm0, xmm0
movups xmmword [ebp - 0x64], xmm0
mov esi, dword [edi]
mov dword [ebp - 0x10], esi
test esi, esi
je 0x49bdfe
cmp dword [esi + 0x48], 0
je 0x49bdfe
mov eax, dword [esi + 0x4c]
mov dword [ebp - 8], eax
test eax, eax
je 0x49bdfe
cmp dword [0x7efe40], 0
movlpd qword [ebp - 0x24], xmm0
movlpd qword [ebp - 0x34], xmm0
mov dword [ebp - 0x18], 0
jne 0x49bc58
test ebx, ebx
jne 0x49bc58
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x20], eax
jmp 0x49bcdc
lea eax, [ebp - 0x24]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
call eax
mov ecx, dword [ebp - 0x24]
sub ecx, dword [0x7efe48]
mov eax, dword [ebp - 0x20]
sbb eax, dword [0x7efe4c]
push 0
push 0x3b9aca00
push eax
push ecx
call fcn.006dbcd0
push dword [0x7efe44]
push dword [0x7efe40]
push edx
push eax
call fcn.006dc0b0
mov ebx, eax
add eax, dword [0x7efe38]
push 0
adc edx, dword [0x7efe3c]
push 0x3b9aca00
push edx
push eax
call fcn.006dc0b0
mov ecx, eax
mov dword [ebp - 0x30], edx
imul eax, ecx, 0x3b9aca00
mov dword [ebp - 0x20], ecx
sub ebx, eax
mov eax, dword [esi + 0x4c]
add ebx, dword [0x7efe38]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
xor edx, edx
inc eax
mov ebx, dword [ebp + 0x10]
div dword [0x7eca60]
mov eax, dword [ebp + 0xc]
add dword [esi + 0x30], eax
mov edi, edx
mov edx, 0xf4240
mov dword [esi + 0x80], edi
adc dword [esi + 0x34], ebx
mov ecx, edi
call fcn.00498d00
mov ecx, dword [esi + 0x48]
mov edx, dword [ebp + 0xc]
sub edx, dword [ecx + eax*8]
mov ecx, ebx
mov ebx, dword [esi + 0x48]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x78], edx
mov edx, 0x186a0
adc dword [esi + 0x7c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x70], edx
mov edx, 0x2710
adc dword [esi + 0x74], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x68], edx
mov edx, 0x3e8
adc dword [esi + 0x6c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x60], edx
mov edx, 0x64
adc dword [esi + 0x64], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x58], edx
mov edx, 0xa
adc dword [esi + 0x5c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x50], edx
mov eax, dword [ebp - 0x30]
adc dword [esi + 0x54], ecx
mov ecx, 0x3b9aca00
mul ecx
mov esi, eax
mov eax, dword [ebp - 0x20]
mul ecx
mov ecx, eax
add esi, edx
mov eax, dword [ebp - 0x18]
cdq
add ecx, eax
mov eax, dword [ebp - 8]
adc esi, edx
mov dword [eax + edi*8], ecx
mov dword [eax + edi*8 + 4], esi
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + 0x48]
mov dword [eax + edi*8], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + edi*8 + 4], ecx
mov edi, dword [0x7efe64]
mov ecx, dword [edi]
mov ebx, dword [0x7eca60]
test ecx, ecx
je 0x49c0bb
mov esi, dword [ecx + 0x80]
mov edx, dword [ecx + 0x84]
cmp esi, edx
je 0x49be45
mov edi, dword [ecx + 0x4c]
cmp dword [edi + edx*8], 0
jne 0x49be3f
cmp dword [edi + edx*8 + 4], 0
jne 0x49be3f
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x84], edx
cmp esi, edx
jne 0x49be21
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x88]
cmp esi, edx
je 0x49be8b
mov edi, dword [ecx + 0x4c]
mov eax, dword [edi + edx*8]
add eax, 0x3b9aca00
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0
cmp dword [edi + esi*8 + 4], eax
jb 0x49be85
ja 0x49be74
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49be85
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x88], edx
cmp esi, edx
jne 0x49be52
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x8c]
cmp esi, edx
je 0x49bed9
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x540be400
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 2
cmp dword [edi + esi*8 + 4], eax
jb 0x49bed3
ja 0x49bec2
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49bed3
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x8c], edx
cmp esi, edx
jne 0x49bea0
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x90]
cmp esi, edx
je 0x49bf29
mov edi, dword [ecx + 0x4c]
nop word [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xf8475800
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0xd
cmp dword [edi + esi*8 + 4], eax
jb 0x49bf23
ja 0x49bf12
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49bf23
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x90], edx
cmp esi, edx
jne 0x49bef0
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x94]
cmp esi, edx
je 0x49bf7b
mov edi, dword [ecx + 0x4c]
nop word [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xb2c97000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x8b
cmp dword [edi + esi*8 + 4], eax
jb 0x49bf75
ja 0x49bf64
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49bf75
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x94], edx
cmp esi, edx
jne 0x49bf40
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x98]
cmp esi, edx
je 0x49bfcb
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x30b8a000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x346
cmp dword [edi + esi*8 + 4], eax
jb 0x49bfc5
ja 0x49bfb4
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49bfc5
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x98], edx
cmp esi, edx
jne 0x49bf90
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x9c]
cmp esi, edx
je 0x49c01b
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x2453c000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x13a5
cmp dword [edi + esi*8 + 4], eax
jb 0x49c015
ja 0x49c004
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c015
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x9c], edx
cmp esi, edx
jne 0x49bfe0
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0xa0]
cmp esi, edx
je 0x49c06b
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x914f0000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x4e94
cmp dword [edi + esi*8 + 4], eax
jb 0x49c065
ja 0x49c054
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c065
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa0], edx
cmp esi, edx
jne 0x49c030
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0xa4]
cmp esi, edx
je 0x49c0bb
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xf9290000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x2260f
cmp dword [edi + esi*8 + 4], eax
jb 0x49c0b5
ja 0x49c0a4
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c0b5
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa4], edx
cmp esi, edx
jne 0x49c080
mov edi, dword [0x7efe64]
mov esi, dword [edi]
test esi, esi
je 0x49c20f
mov edx, dword [esi + 0x84]
mov ecx, dword [esi + 0x80]
cmp edx, ecx
jbe 0x49c0dd
mov eax, ebx
sub eax, edx
add eax, ecx
jmp 0x49c0e1
mov eax, ecx
sub eax, edx
inc eax
cmp ebx, eax
jne 0x49c0f3
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [esi + 0x84], edx
mov edx, dword [esi + 0x88]
cmp edx, ecx
jbe 0x49c105
mov eax, ebx
sub eax, edx
add eax, ecx
jmp 0x49c109
mov eax, ecx
sub eax, edx
inc eax
cmp ebx, eax
jne 0x49c11b
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [esi + 0x88], edx
mov edx, dword [esi + 0x8c]
cmp edx, ecx
jbe 0x49c12d
mov eax, ebx
sub eax, edx
add eax, ecx
jmp 0x49c131
mov eax, ecx
sub eax, edx
inc eax
cmp ebx, eax
jne 0x49c143
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [esi + 0x8c], edx
mov edx, dword [esi + 0x90]
mov eax, ecx
sub eax, edx
cmp edx, ecx
jbe 0x49c153
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c165
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x94]
mov eax, ecx
sub eax, edx
cmp edx, ecx
jbe 0x49c175
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c187
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [esi + 0x94], edx
mov edx, dword [esi + 0x98]
mov eax, ecx
sub eax, edx
cmp edx, ecx
jbe 0x49c197
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c1a9
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [esi + 0x98], edx
mov edx, dword [esi + 0x9c]
mov eax, ecx
sub eax, edx
cmp edx, ecx
jbe 0x49c1b9
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c1cb
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [esi + 0x9c], edx
mov edx, dword [esi + 0xa0]
mov eax, ecx
sub eax, edx
cmp edx, ecx
jbe 0x49c1db
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c1ed
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [esi + 0xa0], edx
mov edx, dword [esi + 0xa4]
mov eax, ecx
sub eax, edx
cmp edx, ecx
jbe 0x49c1fd
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c20f
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [esi + 0xa4], edx
mov eax, dword [edi]
mov ecx, 0xa
push dword [0x7eca5c]
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov dword [eax + 0x38], edx
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x3c], edx
mov edx, dword [edi]
push ebx
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 0xa
mov edx, dword [eax]
jmp 0x49d62b
mov eax, dword [ecx + 4]
push dword [0x7eca5c]
add dword [eax], 1
adc dword [eax + 4], 0
mov eax, dword [ecx + 4]
mov dword [eax + 0x38], edi
mov edi, dword [ebp + 0x10]
mov dword [eax + 0x3c], esi
mov edx, dword [ecx + 4]
mov ecx, 0xb
mov esi, dword [ebp + 0xc]
push edi
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 0xb
push dword [0x7eca64]
push edi
mov edx, dword [eax + 4]
jmp 0x49d632
mov edi, dword [0x7efe64]
xorps xmm0, xmm0
movups xmmword [ebp - 0x74], xmm0
mov esi, dword [edi + 4]
mov dword [ebp - 0x10], esi
test esi, esi
je 0x49c4a3
cmp dword [esi + 0x48], 0
je 0x49c4a3
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x49c4a3
cmp dword [0x7efe40], 0
movlpd qword [ebp - 0xc], xmm0
movlpd qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x20], 0
jne 0x49c2fd
test ebx, ebx
jne 0x49c2fd
mov eax, dword [ebp - 0x70]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x18], eax
jmp 0x49c381
lea eax, [ebp - 0xc]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
call eax
mov ecx, dword [ebp - 0xc]
sub ecx, dword [0x7efe48]
mov eax, dword [ebp - 8]
sbb eax, dword [0x7efe4c]
push 0
push 0x3b9aca00
push eax
push ecx
call fcn.006dbcd0
push dword [0x7efe44]
push dword [0x7efe40]
push edx
push eax
call fcn.006dc0b0
mov ebx, eax
add eax, dword [0x7efe38]
push 0
adc edx, dword [0x7efe3c]
push 0x3b9aca00
push edx
push eax
call fcn.006dc0b0
mov ecx, eax
mov dword [ebp - 8], edx
imul eax, ecx, 0x3b9aca00
mov dword [ebp - 0x18], ecx
sub ebx, eax
mov eax, dword [esi + 0x4c]
add ebx, dword [0x7efe38]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x80]
xor edx, edx
inc eax
mov ebx, dword [ebp + 0x10]
div dword [0x7eca60]
mov eax, dword [ebp + 0xc]
add dword [esi + 0x30], eax
mov edi, edx
mov edx, 0xf4240
mov dword [esi + 0x80], edi
adc dword [esi + 0x34], ebx
mov ecx, edi
call fcn.00498d00
mov ecx, dword [esi + 0x48]
mov edx, dword [ebp + 0xc]
sub edx, dword [ecx + eax*8]
mov ecx, ebx
mov ebx, dword [esi + 0x48]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x78], edx
mov edx, 0x186a0
adc dword [esi + 0x7c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x70], edx
mov edx, 0x2710
adc dword [esi + 0x74], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x68], edx
mov edx, 0x3e8
adc dword [esi + 0x6c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x60], edx
mov edx, 0x64
adc dword [esi + 0x64], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x58], edx
mov edx, 0xa
adc dword [esi + 0x5c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x50], edx
mov eax, dword [ebp - 8]
adc dword [esi + 0x54], ecx
mov ecx, 0x3b9aca00
mul ecx
mov esi, eax
mov eax, dword [ebp - 0x18]
mul ecx
mov ecx, eax
add esi, edx
mov eax, dword [ebp - 0x20]
cdq
add ecx, eax
mov eax, dword [ebp - 0x30]
adc esi, edx
mov dword [eax + edi*8], ecx
mov dword [eax + edi*8 + 4], esi
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + 0x48]
mov dword [eax + edi*8], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + edi*8 + 4], ecx
mov edi, dword [0x7efe64]
mov ecx, dword [edi + 4]
mov ebx, dword [0x7eca60]
test ecx, ecx
je 0x49c76b
mov esi, dword [ecx + 0x80]
mov edx, dword [ecx + 0x84]
cmp esi, edx
je 0x49c4eb
mov edi, dword [ecx + 0x4c]
cmp dword [edi + edx*8], 0
jne 0x49c4e5
cmp dword [edi + edx*8 + 4], 0
jne 0x49c4e5
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x84], edx
cmp esi, edx
jne 0x49c4c7
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x88]
cmp esi, edx
je 0x49c539
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x3b9aca00
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0
cmp dword [edi + esi*8 + 4], eax
jb 0x49c533
ja 0x49c522
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c533
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x88], edx
cmp esi, edx
jne 0x49c500
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x8c]
cmp esi, edx
je 0x49c589
mov edi, dword [ecx + 0x4c]
nop word [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x540be400
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 2
cmp dword [edi + esi*8 + 4], eax
jb 0x49c583
ja 0x49c572
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c583
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x8c], edx
cmp esi, edx
jne 0x49c550
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x90]
cmp esi, edx
je 0x49c5d9
mov edi, dword [ecx + 0x4c]
nop word [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xf8475800
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0xd
cmp dword [edi + esi*8 + 4], eax
jb 0x49c5d3
ja 0x49c5c2
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c5d3
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x90], edx
cmp esi, edx
jne 0x49c5a0
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x94]
cmp esi, edx
je 0x49c62b
mov edi, dword [ecx + 0x4c]
nop word [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xb2c97000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x8b
cmp dword [edi + esi*8 + 4], eax
jb 0x49c625
ja 0x49c614
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c625
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x94], edx
cmp esi, edx
jne 0x49c5f0
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x98]
cmp esi, edx
je 0x49c67b
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x30b8a000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x346
cmp dword [edi + esi*8 + 4], eax
jb 0x49c675
ja 0x49c664
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c675
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x98], edx
cmp esi, edx
jne 0x49c640
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x9c]
cmp esi, edx
je 0x49c6cb
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x2453c000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x13a5
cmp dword [edi + esi*8 + 4], eax
jb 0x49c6c5
ja 0x49c6b4
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c6c5
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x9c], edx
cmp esi, edx
jne 0x49c690
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0xa0]
cmp esi, edx
je 0x49c71b
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x914f0000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x4e94
cmp dword [edi + esi*8 + 4], eax
jb 0x49c715
ja 0x49c704
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c715
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa0], edx
cmp esi, edx
jne 0x49c6e0
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0xa4]
cmp esi, edx
je 0x49c76b
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xf9290000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x2260f
cmp dword [edi + esi*8 + 4], eax
jb 0x49c765
ja 0x49c754
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49c765
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa4], edx
cmp esi, edx
jne 0x49c730
mov edi, dword [0x7efe64]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x49c8ae
mov esi, dword [ecx + 0x80]
mov eax, esi
mov edx, dword [ecx + 0x84]
sub eax, edx
cmp edx, esi
jbe 0x49c78c
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c79e
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x84], edx
mov edx, dword [ecx + 0x88]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49c7ae
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c7c0
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x88], edx
mov edx, dword [ecx + 0x8c]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49c7d0
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c7e2
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x8c], edx
mov edx, dword [ecx + 0x90]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49c7f2
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c804
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x90], edx
mov edx, dword [ecx + 0x94]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49c814
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c826
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x94], edx
mov edx, dword [ecx + 0x98]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49c836
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c848
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x98], edx
mov edx, dword [ecx + 0x9c]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49c858
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c86a
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x9c], edx
mov edx, dword [ecx + 0xa0]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49c87a
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c88c
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa0], edx
mov edx, dword [ecx + 0xa4]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49c89c
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49c8ae
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa4], edx
mov eax, dword [edi + 4]
mov ecx, 0xc
push dword [0x7eca5c]
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov dword [eax + 0x38], edx
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 4]
push ebx
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 0xc
mov edx, dword [eax + 4]
jmp 0x49d62b
mov eax, dword [ecx + 8]
push dword [0x7eca5c]
add dword [eax], 1
adc dword [eax + 4], 0
mov eax, dword [ecx + 8]
mov dword [eax + 0x38], edi
mov edi, dword [ebp + 0x10]
mov dword [eax + 0x3c], esi
mov edx, dword [ecx + 8]
mov ecx, 0xd
mov esi, dword [ebp + 0xc]
push edi
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 0xd
push dword [0x7eca64]
push edi
mov edx, dword [eax + 8]
jmp 0x49d632
mov edi, dword [0x7efe64]
xorps xmm0, xmm0
movups xmmword [ebp - 0x84], xmm0
mov esi, dword [edi + 8]
mov dword [ebp - 0x10], esi
test esi, esi
je 0x49cb4b
cmp dword [esi + 0x48], 0
je 0x49cb4b
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x49cb4b
cmp dword [0x7efe40], 0
movlpd qword [ebp - 0xc], xmm0
movlpd qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x20], 0
jne 0x49c9a5
test ebx, ebx
jne 0x49c9a5
mov eax, dword [ebp - 0x80]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x18], eax
jmp 0x49ca29
lea eax, [ebp - 0xc]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
call eax
mov ecx, dword [ebp - 0xc]
sub ecx, dword [0x7efe48]
mov eax, dword [ebp - 8]
sbb eax, dword [0x7efe4c]
push 0
push 0x3b9aca00
push eax
push ecx
call fcn.006dbcd0
push dword [0x7efe44]
push dword [0x7efe40]
push edx
push eax
call fcn.006dc0b0
mov ebx, eax
add eax, dword [0x7efe38]
push 0
adc edx, dword [0x7efe3c]
push 0x3b9aca00
push edx
push eax
call fcn.006dc0b0
mov ecx, eax
mov dword [ebp - 8], edx
imul eax, ecx, 0x3b9aca00
mov dword [ebp - 0x18], ecx
sub ebx, eax
mov eax, dword [esi + 0x4c]
add ebx, dword [0x7efe38]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x80]
xor edx, edx
inc eax
mov ebx, dword [ebp + 0x10]
div dword [0x7eca60]
mov eax, dword [ebp + 0xc]
add dword [esi + 0x30], eax
mov edi, edx
mov edx, 0xf4240
mov dword [esi + 0x80], edi
adc dword [esi + 0x34], ebx
mov ecx, edi
call fcn.00498d00
mov ecx, dword [esi + 0x48]
mov edx, dword [ebp + 0xc]
sub edx, dword [ecx + eax*8]
mov ecx, ebx
mov ebx, dword [esi + 0x48]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x78], edx
mov edx, 0x186a0
adc dword [esi + 0x7c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x70], edx
mov edx, 0x2710
adc dword [esi + 0x74], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x68], edx
mov edx, 0x3e8
adc dword [esi + 0x6c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x60], edx
mov edx, 0x64
adc dword [esi + 0x64], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x58], edx
mov edx, 0xa
adc dword [esi + 0x5c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x50], edx
mov eax, dword [ebp - 8]
adc dword [esi + 0x54], ecx
mov ecx, 0x3b9aca00
mul ecx
mov esi, eax
mov eax, dword [ebp - 0x18]
mul ecx
mov ecx, eax
add esi, edx
mov eax, dword [ebp - 0x20]
cdq
add ecx, eax
mov eax, dword [ebp - 0x30]
adc esi, edx
mov dword [eax + edi*8], ecx
mov dword [eax + edi*8 + 4], esi
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + 0x48]
mov dword [eax + edi*8], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + edi*8 + 4], ecx
mov edi, dword [0x7efe64]
mov ecx, dword [edi + 8]
mov ebx, dword [0x7eca60]
test ecx, ecx
je 0x49ce0b
mov esi, dword [ecx + 0x80]
mov edx, dword [ecx + 0x84]
cmp esi, edx
je 0x49cb94
mov edi, dword [ecx + 0x4c]
nop
cmp dword [edi + edx*8], 0
jne 0x49cb8e
cmp dword [edi + edx*8 + 4], 0
jne 0x49cb8e
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x84], edx
cmp esi, edx
jne 0x49cb70
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x88]
cmp esi, edx
je 0x49cbda
mov edi, dword [ecx + 0x4c]
mov eax, dword [edi + edx*8]
add eax, 0x3b9aca00
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0
cmp dword [edi + esi*8 + 4], eax
jb 0x49cbd4
ja 0x49cbc3
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49cbd4
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x88], edx
cmp esi, edx
jne 0x49cba1
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x8c]
cmp esi, edx
je 0x49cc29
mov edi, dword [ecx + 0x4c]
nop word [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x540be400
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 2
cmp dword [edi + esi*8 + 4], eax
jb 0x49cc23
ja 0x49cc12
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49cc23
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x8c], edx
cmp esi, edx
jne 0x49cbf0
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x90]
cmp esi, edx
je 0x49cc79
mov edi, dword [ecx + 0x4c]
nop word [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xf8475800
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0xd
cmp dword [edi + esi*8 + 4], eax
jb 0x49cc73
ja 0x49cc62
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49cc73
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x90], edx
cmp esi, edx
jne 0x49cc40
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x94]
cmp esi, edx
je 0x49cccb
mov edi, dword [ecx + 0x4c]
nop word [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xb2c97000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x8b
cmp dword [edi + esi*8 + 4], eax
jb 0x49ccc5
ja 0x49ccb4
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49ccc5
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x94], edx
cmp esi, edx
jne 0x49cc90
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x98]
cmp esi, edx
je 0x49cd1b
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x30b8a000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x346
cmp dword [edi + esi*8 + 4], eax
jb 0x49cd15
ja 0x49cd04
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49cd15
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x98], edx
cmp esi, edx
jne 0x49cce0
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x9c]
cmp esi, edx
je 0x49cd6b
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x2453c000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x13a5
cmp dword [edi + esi*8 + 4], eax
jb 0x49cd65
ja 0x49cd54
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49cd65
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x9c], edx
cmp esi, edx
jne 0x49cd30
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0xa0]
cmp esi, edx
je 0x49cdbb
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x914f0000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x4e94
cmp dword [edi + esi*8 + 4], eax
jb 0x49cdb5
ja 0x49cda4
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49cdb5
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa0], edx
cmp esi, edx
jne 0x49cd80
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0xa4]
cmp esi, edx
je 0x49ce0b
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xf9290000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x2260f
cmp dword [edi + esi*8 + 4], eax
jb 0x49ce05
ja 0x49cdf4
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49ce05
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa4], edx
cmp esi, edx
jne 0x49cdd0
mov edi, dword [0x7efe64]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x49cf4e
mov esi, dword [ecx + 0x80]
mov eax, esi
mov edx, dword [ecx + 0x84]
sub eax, edx
cmp edx, esi
jbe 0x49ce2c
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49ce3e
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x84], edx
mov edx, dword [ecx + 0x88]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49ce4e
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49ce60
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x88], edx
mov edx, dword [ecx + 0x8c]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49ce70
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49ce82
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x8c], edx
mov edx, dword [ecx + 0x90]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49ce92
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49cea4
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x90], edx
mov edx, dword [ecx + 0x94]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49ceb4
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49cec6
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x94], edx
mov edx, dword [ecx + 0x98]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49ced6
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49cee8
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x98], edx
mov edx, dword [ecx + 0x9c]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49cef8
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49cf0a
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x9c], edx
mov edx, dword [ecx + 0xa0]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49cf1a
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49cf2c
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa0], edx
mov edx, dword [ecx + 0xa4]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49cf3c
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49cf4e
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa4], edx
mov eax, dword [edi + 8]
mov ecx, 0xe
push dword [0x7eca5c]
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov dword [eax + 0x38], edx
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 8]
push ebx
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 0xe
mov edx, dword [eax + 8]
jmp 0x49d62b
mov eax, dword [ecx + 0xc]
push dword [0x7eca5c]
add dword [eax], 1
adc dword [eax + 4], 0
mov eax, dword [ecx + 0xc]
mov dword [eax + 0x38], edi
mov edi, dword [ebp + 0x10]
mov dword [eax + 0x3c], esi
mov edx, dword [ecx + 0xc]
mov ecx, 0xf
mov esi, dword [ebp + 0xc]
push edi
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 0xf
push dword [0x7eca64]
push edi
mov edx, dword [eax + 0xc]
jmp 0x49d632
mov edi, dword [0x7efe64]
xorps xmm0, xmm0
movups xmmword [ebp - 0x94], xmm0
mov esi, dword [edi + 0xc]
mov dword [ebp - 0x10], esi
test esi, esi
je 0x49d1ee
cmp dword [esi + 0x48], 0
je 0x49d1ee
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x49d1ee
cmp dword [0x7efe40], 0
movlpd qword [ebp - 0xc], xmm0
movlpd qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x20], 0
jne 0x49d048
test ebx, ebx
jne 0x49d048
mov eax, dword [ebp - 0x90]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x18], eax
jmp 0x49d0cc
lea eax, [ebp - 0xc]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
call eax
mov ecx, dword [ebp - 0xc]
sub ecx, dword [0x7efe48]
mov eax, dword [ebp - 8]
sbb eax, dword [0x7efe4c]
push 0
push 0x3b9aca00
push eax
push ecx
call fcn.006dbcd0
push dword [0x7efe44]
push dword [0x7efe40]
push edx
push eax
call fcn.006dc0b0
mov ebx, eax
add eax, dword [0x7efe38]
push 0
adc edx, dword [0x7efe3c]
push 0x3b9aca00
push edx
push eax
call fcn.006dc0b0
mov ecx, eax
mov dword [ebp - 8], edx
imul eax, ecx, 0x3b9aca00
mov dword [ebp - 0x18], ecx
sub ebx, eax
mov eax, dword [esi + 0x4c]
add ebx, dword [0x7efe38]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x80]
xor edx, edx
inc eax
mov ebx, dword [ebp + 0x10]
div dword [0x7eca60]
mov eax, dword [ebp + 0xc]
add dword [esi + 0x30], eax
mov edi, edx
mov edx, 0xf4240
mov dword [esi + 0x80], edi
adc dword [esi + 0x34], ebx
mov ecx, edi
call fcn.00498d00
mov ecx, dword [esi + 0x48]
mov edx, dword [ebp + 0xc]
sub edx, dword [ecx + eax*8]
mov ecx, ebx
mov ebx, dword [esi + 0x48]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x78], edx
mov edx, 0x186a0
adc dword [esi + 0x7c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x70], edx
mov edx, 0x2710
adc dword [esi + 0x74], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x68], edx
mov edx, 0x3e8
adc dword [esi + 0x6c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x60], edx
mov edx, 0x64
adc dword [esi + 0x64], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x58], edx
mov edx, 0xa
adc dword [esi + 0x5c], ecx
mov ecx, edi
call fcn.00498d00
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edx, dword [ebx + eax*8]
sbb ecx, dword [ebx + eax*8 + 4]
add dword [esi + 0x50], edx
mov eax, dword [ebp - 8]
adc dword [esi + 0x54], ecx
mov ecx, 0x3b9aca00
mul ecx
mov esi, eax
mov eax, dword [ebp - 0x18]
mul ecx
mov ecx, eax
add esi, edx
mov eax, dword [ebp - 0x20]
cdq
add ecx, eax
mov eax, dword [ebp - 0x30]
adc esi, edx
mov dword [eax + edi*8], ecx
mov dword [eax + edi*8 + 4], esi
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + 0x48]
mov dword [eax + edi*8], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + edi*8 + 4], ecx
mov edi, dword [0x7efe64]
mov ecx, dword [edi + 0xc]
mov ebx, dword [0x7eca60]
test ecx, ecx
je 0x49d4ab
mov esi, dword [ecx + 0x80]
mov edx, dword [ecx + 0x84]
cmp esi, edx
je 0x49d236
mov edi, dword [ecx + 0x4c]
cmp dword [edi + edx*8], 0
jne 0x49d230
cmp dword [edi + edx*8 + 4], 0
jne 0x49d230
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x84], edx
cmp esi, edx
jne 0x49d212
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x88]
cmp esi, edx
je 0x49d27c
mov edi, dword [ecx + 0x4c]
mov eax, dword [edi + edx*8]
add eax, 0x3b9aca00
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0
cmp dword [edi + esi*8 + 4], eax
jb 0x49d276
ja 0x49d265
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49d276
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x88], edx
cmp esi, edx
jne 0x49d243
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x8c]
cmp esi, edx
je 0x49d2c9
mov edi, dword [ecx + 0x4c]
nop dword [eax]
mov eax, dword [edi + edx*8]
add eax, 0x540be400
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 2
cmp dword [edi + esi*8 + 4], eax
jb 0x49d2c3
ja 0x49d2b2
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49d2c3
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x8c], edx
cmp esi, edx
jne 0x49d290
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x90]
cmp esi, edx
je 0x49d319
mov edi, dword [ecx + 0x4c]
nop word [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xf8475800
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0xd
cmp dword [edi + esi*8 + 4], eax
jb 0x49d313
ja 0x49d302
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49d313
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x90], edx
cmp esi, edx
jne 0x49d2e0
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x94]
cmp esi, edx
je 0x49d36b
mov edi, dword [ecx + 0x4c]
nop word [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xb2c97000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x8b
cmp dword [edi + esi*8 + 4], eax
jb 0x49d365
ja 0x49d354
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49d365
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x94], edx
cmp esi, edx
jne 0x49d330
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x98]
cmp esi, edx
je 0x49d3bb
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x30b8a000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x346
cmp dword [edi + esi*8 + 4], eax
jb 0x49d3b5
ja 0x49d3a4
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49d3b5
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x98], edx
cmp esi, edx
jne 0x49d380
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0x9c]
cmp esi, edx
je 0x49d40b
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x2453c000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x13a5
cmp dword [edi + esi*8 + 4], eax
jb 0x49d405
ja 0x49d3f4
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49d405
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x9c], edx
cmp esi, edx
jne 0x49d3d0
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0xa0]
cmp esi, edx
je 0x49d45b
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0x914f0000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x4e94
cmp dword [edi + esi*8 + 4], eax
jb 0x49d455
ja 0x49d444
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49d455
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa0], edx
cmp esi, edx
jne 0x49d420
mov edi, dword [0x7efe64]
mov edx, dword [ecx + 0xa4]
cmp esi, edx
je 0x49d4ab
mov edi, dword [ecx + 0x4c]
nop dword [eax + eax]
mov eax, dword [edi + edx*8]
add eax, 0xf9290000
mov dword [ebp - 8], eax
mov eax, dword [edi + edx*8 + 4]
adc eax, 0x2260f
cmp dword [edi + esi*8 + 4], eax
jb 0x49d4a5
ja 0x49d494
mov eax, dword [ebp - 8]
cmp dword [edi + esi*8], eax
jbe 0x49d4a5
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa4], edx
cmp esi, edx
jne 0x49d470
mov edi, dword [0x7efe64]
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x49d5ee
mov esi, dword [ecx + 0x80]
mov eax, esi
mov edx, dword [ecx + 0x84]
sub eax, edx
cmp edx, esi
jbe 0x49d4cc
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49d4de
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x84], edx
mov edx, dword [ecx + 0x88]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49d4ee
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49d500
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x88], edx
mov edx, dword [ecx + 0x8c]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49d510
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49d522
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x8c], edx
mov edx, dword [ecx + 0x90]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49d532
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49d544
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x90], edx
mov edx, dword [ecx + 0x94]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49d554
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49d566
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x94], edx
mov edx, dword [ecx + 0x98]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49d576
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49d588
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x98], edx
mov edx, dword [ecx + 0x9c]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49d598
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49d5aa
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0x9c], edx
mov edx, dword [ecx + 0xa0]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49d5ba
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49d5cc
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa0], edx
mov edx, dword [ecx + 0xa4]
mov eax, esi
sub eax, edx
cmp edx, esi
jbe 0x49d5dc
add eax, ebx
inc eax
cmp ebx, eax
jne 0x49d5ee
lea eax, [edx + 1]
xor edx, edx
div ebx
mov dword [ecx + 0xa4], edx
mov eax, dword [edi + 0xc]
mov ecx, 0x10
push dword [0x7eca5c]
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov dword [eax + 0x38], edx
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0xc]
push ebx
push esi
push dword [ebp - 0x14]
mov edx, dword [edx + 0x40]
call fcn.0049a9d0
mov eax, dword [0x7efe64]
mov ecx, 0x10
mov edx, dword [eax + 0xc]
push dword [0x7eca64]
push ebx
mov edx, dword [edx + 0x44]
push esi
push dword [ebp + 8]
call fcn.0049a9d0
add esp, 0x20
mov edx, dword [0x7efe60]
test edx, edx
je 0x49d654
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret