Function at 0x100502f0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1ec
push ebx
push esi
push edi
mov eax, 0x1eca0
mov dword [ebp - 0x1c4], 0x8c8952ab
mov dword [ebp - 0x1c0], eax
mov byte [ebp - 3], 0x80
mov dword [ebp - 0x48], 0x66
mov byte [ebp - 0x11], 0xb2
mov ecx, dword [0x100c3100]
mov edx, dword [0x100c3104]
mov dword [ebp - 0x1bc], edx
mov dword [ebp - 0x28], ecx
mov ax, word [0x100c30fc]
mov byte [ebp - 0x31], al
mov eax, dword [0x100c3108]
cdq
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
mov cl, byte [0x100c30a0]
mov byte [ebp - 5], cl
mov edx, dword [0x100c30c0]
mov eax, dword [0x100c30c4]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], eax
mov byte [ebp - 6], 0x4d
mov byte [ebp - 2], 0x74
mov ecx, dword [0x100c30d0]
mov edx, dword [0x100c30d4]
mov dword [ebp - 0x1b8], edx
mov word [ebp - 0xc], cx
mov eax, dword [0x100c30d0]
mov ecx, dword [0x100c30d4]
mov dword [ebp - 0x1b4], ecx
mov dword [ebp - 0x54], eax
mov edx, dword [0x100c3110]
mov eax, dword [0x100c3114]
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x20], edx
mov cx, word [0x100c30b0]
mov byte [ebp - 4], cl
mov dword [ebp - 0x38], 0xa5
movsx eax, word [0x100c3118]
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movzx dx, byte [0x100c3063]
mov word [ebp - 0x3c], dx
mov dword [ebp - 0x90], 0x26da7a85
mov byte [ebp - 0x14], 0x8a
mov al, byte [0x100c30a0]
mov byte [ebp - 1], al
xor ecx, ecx
mov dword [ebp - 0x30], 0xa9
mov dword [ebp - 0x2c], ecx
mov dx, word [0x100c30d8]
mov word [ebp - 0x24], dx
mov eax, dword [0x100c30d8]
mov ecx, dword [0x100c30dc]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov edx, 0x47a2
mov word [ebp - 0x10], dx
mov eax, dword [0x100c30c8]
mov ecx, dword [0x100c30cc]
mov dword [ebp - 0x1a4], ecx
mov word [ebp - 0x108], ax
mov byte [ebp - 0x65], 0xd5
xor edx, edx
mov dword [ebp - 0x1cc], 0xd1
mov dword [ebp - 0x1c8], edx
mov dword [ebp - 0x168], 0xdf
movzx eax, byte [0x100c3062]
mov dword [ebp - 0x16c], eax
mov cl, byte [0x100c30f0]
mov byte [ebp - 0x5d], cl
xor edx, edx
mov dword [ebp - 0x1d4], 0xc5
mov dword [ebp - 0x1d0], edx
mov eax, dword [0x100c30f0]
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x174], 0x7c
mov eax, dword [0x100c3108]
cdq
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], edx
mov ecx, 0xfe03
mov word [ebp - 0x10c], cx
mov edx, 0xa3016
mov dword [ebp - 0x1e4], 0xe1006e96
mov dword [ebp - 0x1e0], edx
mov eax, dword [0x100c310c]
mov byte [ebp - 0x55], al
mov ecx, dword [0x100c3110]
mov edx, dword [0x100c3114]
mov dword [ebp - 0x178], edx
mov dword [ebp - 0x17c], ecx
mov eax, dword [0x100c30a8]
mov ecx, dword [0x100c30ac]
mov dword [ebp - 0x180], ecx
mov byte [ebp - 0x56], al
mov dx, word [0x100c30f0]
mov word [ebp - 0x5c], dx
mov eax, 0xb31f
mov word [ebp - 0xfc], ax
mov dword [ebp - 0x64], 0x1c
mov ecx, dword [0x100c30d0]
mov edx, dword [0x100c30d4]
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x114]
or eax, dword [ebp - 0x110]
je 0x10050550
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], edx
jmp 0x10050567
mov eax, dword [0x100c30c0]
mov ecx, dword [0x100c30c4]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], ecx
mov dl, byte [ebp - 0xb8]
mov byte [ebp - 2], dl
mov eax, dword [ebp - 0x1c]
add eax, 0xffff9017
mov dword [ebp - 0x48], eax
movsx ecx, byte [ebp - 1]
xor ecx, 0x31
mov byte [0x100c303b], cl
movzx eax, word [ebp - 0x10]
sub eax, 0x2fd38de2
not eax
cdq
push 0x3d5f2
push 0x5135b487
push edx
push eax
call fcn.1008eb70
not eax
movzx edx, word [ebp - 0xc]
mov ecx, 0xc180485c
sub ecx, edx
movzx edx, word [ebp - 0x10]
movsx esi, byte [ebp - 0x11]
imul edx, esi
add ecx, edx
sub eax, ecx
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x28]
add eax, 0x6fba566b
mov dword [0x100c310c], eax
movsx cx, byte [ebp - 1]
movzx edx, cx
push edx
push 0
call fcn.10051570
add esp, 8
cwde
cdq
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x11c]
or edx, dword [ebp - 0x118]
je 0x10050738
movsx eax, byte [ebp - 5]
cdq
mov ecx, dword [0x100c3120]
mov esi, dword [0x100c3124]
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x120], edx
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x128], esi
mov edx, dword [ebp - 0x120]
cmp edx, dword [ebp - 0x128]
jb 0x10050663
ja 0x10050657
mov eax, dword [ebp - 0x124]
cmp eax, dword [ebp - 0x12c]
jbe 0x10050663
mov dword [ebp - 0xac], 1
jmp 0x1005066d
mov dword [ebp - 0xac], 0
movsx ecx, byte [ebp - 5]
cmp ecx, 0x47
jle 0x10050682
mov dword [ebp - 0xb0], 1
jmp 0x1005068c
mov dword [ebp - 0xb0], 0
mov edx, dword [ebp - 0xac]
cmp edx, dword [ebp - 0xb0]
jle 0x10050736
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], ecx
mov edx, dword [ebp - 0x134]
or edx, dword [ebp - 0x130]
je 0x100506d4
movzx eax, byte [0x100c3063]
cdq
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x100506eb
mov eax, dword [0x100c3120]
mov ecx, dword [0x100c3124]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], ecx
mov dx, word [ebp - 0xc0]
mov word [0x100c308c], dx
mov eax, dword [0x100c3100]
mov ecx, dword [0x100c3104]
add eax, 0x60d2d62e
adc ecx, 0
mov dword [0x100c30d8], eax
mov dword [0x100c30dc], ecx
mov dword [ebp - 0x48], 0x18ed
mov dl, byte [0x100c3b38]
mov byte [str.NDisablePerfBackoff], dl
movsx eax, byte [ebp - 2]
sub eax, 0x7499b57
mov byte [ebp - 6], al
jmp 0x100507b6
mov ecx, 2
mov word [0x100c30b0], cx
mov edx, dword [0x100c310c]
add edx, 0x4c91e033
mov word [0x100c3088], dx
movzx eax, byte [ebp - 6]
sub eax, 0xf1
cdq
mov dword [0x100c3098], eax
mov dword [0x100c309c], edx
mov eax, dword [0x100c3120]
mov ecx, dword [0x100c3124]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x104]
or edx, dword [ebp - 0x100]
jne 0x1005079a
mov dword [ebp - 0x74], 1
jmp 0x100507a1
mov dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x74]
xor eax, dword [0x100c3108]
cdq
mov dword [0x100c30e8], eax
mov dword [0x100c30ec], edx
mov eax, dword [ebp - 0x64]
add eax, 1
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0x1ac6
jl 0x100505d1
movzx ecx, byte [ebp - 1]
push ecx
push 0xf
push 0
call fcn.10052870
add esp, 0xc
movsx dx, al
mov word [0x100c30fc], dx
movsx eax, word [0x100c30fc]
test eax, eax
je 0x100509ce
xorps xmm0, xmm0
movlpd qword [0x100c3098], xmm0
mov ecx, dword [0x100c3100]
mov edx, dword [0x100c3104]
mov dword [ebp - 0x184], edx
sub ecx, 0x7fedd7ea
movsx eax, word [0x100c308c]
cdq
add eax, ecx
mov word [0x100c308c], ax
movsx eax, byte [ebp - 4]
cdq
add eax, dword [0x100c30d8]
mov byte [ebp - 4], al
push 0
push 0x4f
mov eax, dword [ebp - 0x4c]
push eax
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.1008eb70
mov byte [ebp - 5], al
movzx eax, byte [ebp - 6]
cdq
add eax, 0xb98be091
mov byte [ebp - 1], al
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
sub edx, 0x876c
sbb eax, 0
mov dword [0x100c3100], edx
mov dword [0x100c3104], eax
movzx ecx, byte [0x100c3062]
imul edx, ecx, 0xcc1c0c62
mov word [0x100c3088], dx
mov eax, dword [0x100c3098]
mov ecx, dword [0x100c309c]
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], ecx
mov edx, dword [ebp - 0x13c]
or edx, dword [ebp - 0x138]
je 0x100508b1
jmp 0x100509c9
mov eax, dword [0x100c3098]
mov ecx, dword [0x100c309c]
push ecx
push eax
mov edx, dword [0x100c30dc]
push edx
mov eax, dword [0x100c30d8]
push eax
call fcn.1008eb70
add eax, dword [0x100c30d8]
adc edx, dword [0x100c30dc]
mov dword [0x100c30d8], eax
mov dword [0x100c30dc], edx
movsx eax, byte [str.NDisablePerfBackoff]
cdq
sub eax, 0x7af8f275
mov byte [ebp - 1], al
movzx eax, word [ebp - 0xc]
cdq
sub eax, 0x88149708
sbb edx, 0xa9d97
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movzx ecx, byte [0x100c3063]
imul eax, ecx, 0xb1
cdq
mov dword [0x100c30a8], eax
mov dword [0x100c30ac], edx
movsx eax, byte [ebp - 2]
cdq
mov ecx, eax
mov esi, edx
movsx eax, word [0x100c30fc]
not eax
cdq
mov edi, dword [ebp - 0x2c]
add eax, dword [ebp - 0x30]
adc edx, edi
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x140], esi
mov edx, dword [ebp - 0x144]
or edx, dword [ebp - 0x140]
jne 0x10050973
xor eax, eax
mov dword [ebp - 0xc8], 1
mov dword [ebp - 0xc4], eax
jmp 0x1005097e
xorps xmm0, xmm0
movlpd qword [ebp - 0xc8], xmm0
mov ecx, dword [ebp - 0x38]
xor esi, esi
movsx eax, byte [0x100c3027]
cdq
mov edi, dword [0x100c3114]
add eax, dword [0x100c3110]
adc edx, edi
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0xc4]
push edx
mov eax, dword [ebp - 0xc8]
push eax
push esi
push ecx
call fcn.1008eb70
mov byte [ebp - 2], al
mov ecx, dword [0x100c3b38]
xor edx, edx
mov dword [0x100c30c0], ecx
mov dword [0x100c30c4], edx
jmp 0x10050a55
movsx eax, byte [ebp - 3]
not eax
movzx ecx, byte [ebp - 6]
sub eax, ecx
movsx edx, byte [0x100c3075]
imul eax, edx
movzx ecx, word [ebp - 0x3c]
not ecx
add ecx, dword [ebp - 0x28]
movzx edx, byte [0x100c3062]
movzx esi, byte [0x100c3062]
sub edx, esi
not edx
imul ecx, edx
xor eax, ecx
mov byte [ebp - 4], al
movzx eax, byte [0x100c3062]
cdq
mov ecx, eax
sub ecx, dword [0x100c30d8]
movzx eax, byte [0x100c3062]
cdq
sub eax, ecx
mov byte [0x100c3062], al
mov edx, dword [ebp - 0x1c]
add edx, 0x5101
mov eax, dword [ebp - 0x18]
adc eax, 0
mov dword [0x100c30b8], edx
mov dword [0x100c30bc], eax
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x188], edx
add ecx, 0x9655
mov dword [ebp - 0x28], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [ebp - 1], al
mov eax, 3
mov word [0x100c3118], ax
mov ecx, dword [0x100c30c8]
mov edx, dword [0x100c30cc]
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x148], edx
mov eax, dword [ebp - 0x14c]
or eax, dword [ebp - 0x148]
je 0x10050aa9
mov ecx, dword [0x100c30d8]
mov edx, dword [0x100c30dc]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], edx
jmp 0x10050aba
movsx eax, byte [ebp - 1]
cdq
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
mov ax, word [ebp - 0xd0]
mov word [0x100c30a0], ax
movzx eax, word [ebp - 0xc]
cdq
mov ecx, dword [0x100c3098]
mov esi, dword [0x100c309c]
push esi
push ecx
push edx
push eax
call fcn.1008eb70
mov word [ebp - 0xc], ax
mov edx, 0x70be
mov word [ebp - 0x24], dx
movzx eax, byte [0x100c3063]
test eax, eax
jne 0x10050b0d
xor ecx, ecx
mov dword [ebp - 0xd8], 1
mov dword [ebp - 0xd4], ecx
jmp 0x10050b18
xorps xmm0, xmm0
movlpd qword [ebp - 0xd8], xmm0
mov edx, dword [ebp - 0xd8]
add edx, 0xb68a39e
mov eax, dword [ebp - 0xd4]
adc eax, 0x49a07
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x154]
or ecx, dword [ebp - 0x150]
jne 0x10050b5d
xor edx, edx
mov dword [ebp - 0xe0], 1
mov dword [ebp - 0xdc], edx
jmp 0x10050b68
xorps xmm0, xmm0
movlpd qword [ebp - 0xe0], xmm0
movsx eax, word [0x100c30fc]
add eax, 0x99ab
cdq
mov ebx, eax
mov eax, dword [0x100c30a8]
mov ecx, dword [0x100c30ac]
mov edx, dword [ebp - 0xdc]
push edx
mov edx, dword [ebp - 0xe0]
push edx
push ecx
push eax
call fcn.1008eb70
add ebx, eax
mov byte [0x100c3075], bl
movsx eax, word [0x100c3090]
test eax, eax
je 0x10050bb3
movzx ecx, word [ebp - 0xc]
mov dword [ebp - 0x78], ecx
jmp 0x10050bbd
movsx edx, word [0x100c30fc]
mov dword [ebp - 0x78], edx
mov al, byte [ebp - 0x78]
mov byte [0x100c3063], al
movsx ecx, word [0x100c3118]
mov dword [ebp - 0x7c], ecx
cmp dword [ebp - 0x7c], 3
ja case.default.0x10050bdc
mov edx, dword [ebp - 0x7c]
jmp dword [edx*4 + 0x10051538]
movsx eax, byte [ebp - 3]
test eax, eax
je 0x10050bf3
mov cl, byte [ebp - 3]
mov byte [ebp - 0x12], cl
jmp 0x10050bf9
mov dl, byte [ebp - 2]
mov byte [ebp - 0x12], dl
movsx eax, byte [ebp - 0x12]
mov dword [ebp - 0x20], eax
movsx ecx, word [0x100c308c]
imul edx, ecx, 0xdfb6
mov byte [ebp - 1], dl
mov byte [ebp - 2], 8
movzx eax, byte [0x100c3062]
sub eax, 0x91e3
mov word [ebp - 0xc], ax
movzx ecx, byte [0x100c3062]
test ecx, ecx
jne 0x10050c38
mov dword [ebp - 0x80], 1
jmp 0x10050c3f
mov dword [ebp - 0x80], 0
movsx edx, word [0x100c3090]
imul edx, dword [ebp - 0x80]
mov dword [0x100c310c], edx
jmp case.default.0x10050bdc
mov eax, dword [0x100c3110]
mov ecx, dword [0x100c3114]
mov dword [ebp - 0x18c], ecx
add eax, 0x8e1d35f8
mov word [0x100c30a0], ax
mov ecx, dword [ebp - 0x38]
sub ecx, 0xc828317a
movsx eax, byte [ebp - 3]
movsx edx, word [0x100c3088]
not edx
sub eax, edx
cdq
sub ecx, eax
mov word [ebp - 0xc], cx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x190], ecx
mov edx, 1
imul ecx, edx, 0xe01
mov byte [ecx + 0x100f8c58], al
mov edx, 0x15
mov word [ebp - 0x10], dx
mov eax, dword [0x100c30c0]
mov ecx, dword [0x100c30c4]
mov dword [ebp - 0x194], ecx
and eax, 0xa23f2b01
mov byte [0x100c3027], al
jmp case.default.0x10050bdc
mov ecx, dword [0x100c3110]
mov edx, dword [0x100c3114]
mov dword [ebp - 0x198], edx
add ecx, 0x73
mov eax, dword [ebp - 0x20]
cdq
xor eax, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [0x100c30c8]
mov ecx, dword [0x100c30cc]
mov dword [ebp - 0x19c], ecx
sub eax, 0x9a5a
mov dword [ebp - 0x20], eax
movsx eax, byte [ebp - 0x11]
cdq
mov dword [0x100c30c8], eax
mov dword [0x100c30cc], edx
mov edx, dword [0x100c3098]
mov eax, dword [0x100c309c]
mov dword [ebp - 0x1a0], eax
add edx, 0xc403
mov byte [0x100c303b], dl
movzx eax, word [0x100c30b0]
cdq
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
push edx
push eax
push esi
push ecx
call fcn.1008eb70
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
jmp case.default.0x10050bdc
mov edx, dword [ebp - 0x90]
xor eax, eax
push 0xbecbc
push 0xcab5a103
push eax
push edx
call fcn.1008eb70
mov word [0x100c30fc], ax
mov eax, dword [ebp - 0x28]
sub eax, 0x2cc321e
cdq
mov dword [0x100c3080], eax
mov dword [0x100c3084], edx
mov ecx, dword [ebp - 0x20]
sub ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [0x100c3b38]
xor eax, eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
mov cx, word [0x100c3b38]
mov word [0x100c308c], cx
xor edx, edx
mov dword [0x100c30f0], 4
mov dword [0x100c30f4], edx
mov eax, dword [0x100c3098]
mov ecx, dword [0x100c309c]
mov dword [ebp - 0x1a8], ecx
sub eax, 0x127a079c
mov byte [ebp - 0x31], al
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x38], edx
movsx eax, word [0x100c30fc]
cdq
push 0xb4cc8
push 0xfebe47c1
push edx
push eax
call fcn.1008eb70
mov word [0x100c308c], ax
mov al, byte [0x100c3b38]
mov byte [ebp - 1], al
mov ecx, dword [0x100c3098]
mov edx, dword [0x100c309c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
mov eax, dword [0x100c30f0]
mov ecx, dword [0x100c30f4]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], ecx
cmp dword [ebp - 0xe4], 0
ja 0x10051142
jb 0x10050e4e
cmp dword [ebp - 0xe8], 4
ja 0x10051142
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 0x1ec], edx
mov eax, dword [ebp - 0x1ec]
jmp dword [eax*4 + 0x10051548]
mov ecx, 3
mov word [ebp - 0x10], cx
mov dl, byte [ebp - 0x54]
mov byte [ebp - 2], dl
mov al, byte [ebp - 0xc]
mov byte [ebp - 5], al
movsx eax, byte [ebp - 4]
cdq
mov ecx, dword [0x100c30a8]
mov esi, dword [0x100c30ac]
push esi
push ecx
push edx
push eax
call fcn.1008eb70
mov ecx, eax
not ecx
movsx eax, byte [0x100c3027]
sub eax, 0xd9fd
cdq
add ecx, eax
mov byte [ebp - 3], cl
movzx edx, word [0x100c30b0]
sub edx, 0x5408
mov dword [ebp - 0x90], edx
mov ecx, dword [0x100c310c]
sub ecx, 0xb3d7a1ad
mov eax, dword [ebp - 0x20]
cdq
sub eax, ecx
mov dword [ebp - 0x20], eax
movsx edx, byte [str.NDisablePerfBackoff]
test edx, edx
jne 0x100511c6
mov dword [ebp - 0x94], 1
jmp 0x100511d0
mov dword [ebp - 0x94], 0
mov eax, dword [0x100c3110]
mov ecx, dword [0x100c3114]
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], ecx
mov edx, dword [ebp - 0x15c]
or edx, dword [ebp - 0x158]
jne 0x10051209
xor eax, eax
mov dword [ebp - 0xf8], 1
mov dword [ebp - 0xf4], eax
jmp 0x10051214
xorps xmm0, xmm0
movlpd qword [ebp - 0xf8], xmm0
movsx eax, word [ebp - 0x24]
not eax
cdq
mov esi, eax
mov edi, edx
mov ecx, dword [ebp - 0x40]
sub esi, dword [ebp - 0x44]
sbb edi, ecx
mov edx, dword [ebp - 0x94]
imul edx, dword [ebp - 0x54]
xor eax, eax
add esi, edx
adc edi, eax
mov ecx, dword [0x100c30d8]
not ecx
mov edx, dword [0x100c30dc]
not edx
mov eax, dword [ebp - 0xf4]
push eax
mov eax, dword [ebp - 0xf8]
push eax
push edx
push ecx
call fcn.1008eb70
mov ecx, eax
mov ebx, edx
movzx eax, word [0x100c30e0]
cdq
sub ecx, eax
sbb ebx, edx
xor esi, ecx
xor edi, ebx
mov dword [0x100c3080], esi
mov dword [0x100c3084], edi
movzx edx, word [ebp - 0x10]
mov dword [ebp - 0x98], edx
cmp dword [ebp - 0x98], 3
ja case.default.0x10051299
mov eax, dword [ebp - 0x98]
jmp dword [eax*4 + 0x1005155c]
movsx eax, word [0x100c3090]
sub eax, 0x37b0
cdq
mov dword [0x100c30f0], eax
mov dword [0x100c30f4], edx
mov cx, word [0x100c3b38]
mov word [ebp - 0x3c], cx
mov dword [ebp - 0x28], 0x6c
mov dword [ebp - 0x38], 0x37cbe50
mov edx, dword [ebp - 0x38]
xor eax, eax
push 0xc521e
push 0x16277e07
push eax
push edx
call fcn.1008eb70
mov dword [ebp - 0x20], eax
movzx ecx, word [0x100c30b0]
xor ecx, dword [ebp - 0x48]
jne 0x10051302
mov dword [ebp - 0x9c], 1
jmp 0x1005130c
mov dword [ebp - 0x9c], 0
mov eax, dword [0x100c3108]
cdq
add eax, dword [ebp - 0x50]
adc edx, dword [ebp - 0x4c]
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x160], edx
mov edx, dword [ebp - 0x164]
or edx, dword [ebp - 0x160]
jne 0x1005133e
mov dword [ebp - 0xa0], 1
jmp 0x10051348
mov dword [ebp - 0xa0], 0
movzx eax, word [ebp - 0xc]
test eax, eax
jne 0x1005135c
mov dword [ebp - 0xa4], 1
jmp 0x10051366
mov dword [ebp - 0xa4], 0
movsx ecx, byte [ebp - 1]
xor ecx, dword [ebp - 0x28]
and ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xa0]
sub edx, dword [ebp - 0xa4]
xor ecx, edx
mov word [0x100c30fc], cx
jmp case.default.0x10051299
movzx eax, word [ebp - 0x10]
mov ecx, dword [0x100c3108]
sub ecx, eax
not ecx
mov dword [ebp - 0x28], ecx
movsx edx, byte [ebp - 5]
add edx, 0xfeee
movsx eax, word [0x100c3088]
or eax, edx
mov word [0x100c3088], ax
movzx ecx, byte [ebp - 0x14]
mov eax, dword [0x100c30f8]
sub eax, ecx
cdq
mov dword [0x100c30f0], eax
mov dword [0x100c30f4], edx
movzx edx, word [ebp - 0x10]
test edx, edx
je 0x100513e5
movsx eax, byte [str.NDisablePerfBackoff]
mov dword [ebp - 0xa8], eax
jmp 0x100513f2
movsx ecx, word [0x100c3090]
mov dword [ebp - 0xa8], ecx
mov dl, byte [ebp - 0xa8]
mov byte [ebp - 4], dl
jmp case.default.0x10051299
mov eax, dword [ebp - 0x1c]
sub eax, 0xd9
mov ecx, dword [ebp - 0x18]
sbb ecx, 0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x54]
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call fcn.1008eb70
push edx
push eax
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.1008eb70
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
movsx eax, byte [ebp - 4]
cdq
mov ecx, 8
imul ecx, ecx, 0x756
mov dword [ecx + 0x10118ca8], eax
mov dword [ecx + 0x10118cac], edx
movsx eax, word [0x100c3088]
shl eax, 4
cdq
mov dword [0x100c30e8], eax
mov dword [0x100c30ec], edx
movzx eax, byte [0x100c3063]
add eax, 2
cdq
mov dword [0x100c30d8], eax
mov dword [0x100c30dc], edx
jmp case.default.0x10051299
movsx eax, word [0x100c308c]
sar eax, 3
cdq
mov dword [0x100c30f0], eax
mov dword [0x100c30f4], edx
movsx eax, word [ebp - 0x24]
cdq
mov ecx, eax
mov esi, edx
add ecx, 0xaba83e16
adc esi, 0xe5e31
mov eax, dword [0x100c30f8]
cdq
push esi
push ecx
push edx
push eax
call fcn.1008eb70
mov dword [0x100c30f8], eax
mov edx, dword [0x100c30c0]
mov eax, dword [0x100c30c4]
add edx, dword [0x100c3080]
adc eax, dword [0x100c3084]
mov ecx, dword [0x100c3080]
sub ecx, edx
mov edx, dword [0x100c3084]
sbb edx, eax
mov dword [0x100c3080], ecx
mov dword [0x100c3084], edx
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
or eax, 0xd3
movzx edx, byte [ebp - 0x14]
or edx, 0xc434941a
xor esi, esi
sub eax, edx
sbb ecx, esi
mov dword [0x100c3110], eax
mov dword [0x100c3114], ecx
mov eax, dword [0x100c3b38]
mov dword [ebp - 0x48], eax
movsx eax, word [ebp - 0x5c]
cdq
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret