Function at 0x1008beb0
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x20
mov eax, dword [0x10143964]
xor eax, esp
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
push ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
push edi
mov edi, dword [esp + 0x44]
test ebp, ebp
je 0x1008db9c
mov esi, dword [ecx + 0x10]
mov dword [esp + 0x10], esi
test esi, esi
je 0x1008db9c
mov eax, dword [esp + 0x38]
mov edx, dword [esi + 0x2b4]
mov dword [esp + 0x18], 0
cmp eax, 0x900
jg 0x10090623
je 0x100904ab
lea edx, [eax - 1]
cmp edx, 0x31
ja case.default.0x10090e6c
jmp dword [edx*4 + 0x10091ae8]
cmp dword [esp + 0x40], 4
jb 0x1008c91b
add eax, 0xfffffffc
xor edi, edi
cmp eax, 0x17
ja case.0x1008bf3b.6
movzx eax, byte [eax + 0x10091bd0]
jmp dword [eax*4 + 0x10091bb0]
mov edi, 0x100000
jmp case.0x1008bf3b.6
test byte [esi + 0xd0], 4
je 0x1008db9c
cmp dword [0x1014b9b4], edi
jne 0x1008bf7e
cmp dword [ebp], edi
je 0x1008bf7e
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov edi, 0x40
jmp case.0x1008bf3b.6
mov edi, 0x400000
jmp case.0x1008bf3b.6
mov edi, 2
jmp case.0x1008bf3b.6
test dword [esi + 0xd0], 0x4000000
je 0x1008db9c
mov edi, 0x800000
jmp case.0x1008bf3b.6
mov edi, 0x100
jmp case.0x1008bf3b.6
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008db9c
test eax, 0x400000
jne 0x1008db9c
push dword [ebp]
mov edi, 0x200
call fcn.100aa140
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x10]
mov dword [eax + 0x1e4], ecx
mov esi, dword [esp + 0x10]
lea eax, [esi + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp], 0
je 0x1008c00c
mov eax, dword [esp + 0x10]
or dword [eax + 0xc8], edi
jmp 0x10091ac0
mov ecx, dword [esp + 0x10]
not edi
mov eax, edi
cdq
and dword [ecx + 0xc8], eax
and dword [ecx + 0xcc], edx
jmp 0x10091ac0
cmp dword [esp + 0x40], 4
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
test al, 0x10
je 0x1008c91b
test al, 1
jne 0x1008c91b
mov eax, dword [esi + 0xcc]
or dword [esi + 0xc8], 0x2000000
mov dword [esi + 0xcc], eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 4
jb 0x1008c91b
mov eax, dword [ebp]
cmp eax, dword [ecx + 0x8c]
ja 0x1008c91b
mov dword [esi + 0x21c], eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 4
jb 0x1008c91b
mov eax, dword [ebp]
cmp eax, 2
jne 0x1008c0ff
or dword [esi + 0xc8], 8
mov eax, dword [esi + 0xcc]
mov dword [esi + 0xcc], eax
mov ecx, dword [esp + 0x10]
or dword [ecx + 0xc8], 0x10
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp eax, 1
jne 0x1008c10d
or dword [esi + 0xc8], 8
jmp 0x1008c11c
test eax, eax
jne 0x1008c91b
and dword [esi + 0xc8], 0xfffffff7
mov eax, dword [esi + 0xcc]
mov dword [esi + 0xcc], eax
mov ecx, dword [esp + 0x10]
and dword [ecx + 0xc8], 0xffffffef
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008c1bb
test eax, 0x400000
jne 0x1008c1bb
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008c21c
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1008c1e7
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008c210
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [ebp + 4]
mov dword [esi + 0x32c], eax
lea eax, [esi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008c23d
test eax, 0x400000
jne 0x1008c23d
test al, 1
je 0x1008c263
mov eax, dword [ebp]
test eax, eax
je 0x1008c23d
cmp eax, 2
jne 0x1008c263
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 4]
mov dword [eax + 0x220], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x1008c281
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008c2c4
nop dword [eax + eax]
lea esi, [edi + 0x584]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 4]
push esi
mov dword [edi + 0x32c], eax
call ebx
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x1008c2a0
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 0xc
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008c32f
test eax, 0x400000
jne 0x1008c32f
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008c32b
push 1
push eax
push esi
call fcn.100b2350
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10091a71
jmp 0x1008c360
xor edi, edi
jmp 0x1008c36a
lea eax, [esi + 0x268]
push eax
call ecx
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008c358
lea eax, [edi + 0x584]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call eax
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 4]
test eax, eax
je 0x1008c3a8
cmp eax, 0x1f4
jbe 0x1008c3a8
mov dword [esp + 0x18], 0x16
test edi, edi
je 0x10091ad0
lea eax, [edi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
test edi, edi
je 0x1008c3e3
test eax, eax
je 0x1008c3b6
mov dword [edi + 0x3c4], eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x1008c3c3
mov dword [edi + 0x3cc], eax
lea eax, [edi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008c404
test eax, 0x400000
jne 0x1008c404
test al, 1
je 0x1008c448
mov eax, dword [ebp]
test eax, eax
je 0x1008c404
cmp eax, 2
jne 0x1008c448
lea eax, [esi + 0x268]
push eax
call ecx
mov eax, dword [ebp + 4]
test eax, eax
je 0x1008c427
push eax
call fcn.100a7db0
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0x124], eax
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x1008c438
mov eax, dword [esp + 0x10]
mov dword [eax + 0x14c], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x1008c466
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008c4b7
lea edi, [esi + 0x584]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 4]
test eax, eax
je 0x1008c49c
mov dword [esi + 0x3c4], eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x1008c4a9
mov dword [esi + 0x3cc], eax
push edi
call ebx
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x1008c482
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 1
jb 0x1008c91b
lea eax, [esi + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x10]
push dword [eax + 0x164]
movzx eax, byte [ebp]
push eax
call fcn.100c2c60
add esp, 8
test eax, eax
je 0x1008c516
mov dword [esp + 0x18], 0x16
jmp 0x10091ac0
mov eax, dword [esp + 0x10]
mov byte [eax + 0x232], 1
jmp 0x10091ac0
mov edx, dword [esp + 0x40]
xor edi, edi
cmp edx, 8
jb 0x1008c91b
movzx eax, word [ebp + 6]
test ax, ax
jne 0x1008c547
lea eax, [edx - 8]
mov dword [esp + 0x14], eax
jmp 0x1008c558
mov ecx, eax
mov dword [esp + 0x14], ecx
lea eax, [ecx + 8]
cmp eax, edx
ja 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008c5b2
test eax, 0x400000
jne 0x1008c5b2
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008c6c6
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1008c5e7
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call ecx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008c6b4
lea eax, [esi + 0x584]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call eax
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
lea eax, [esi + 0x448]
mov dword [esp + 0x1c], eax
movzx eax, word [ebp + 4]
push eax
push esi
call fcn.100c34d0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x1008c642
push eax
lea eax, [ebp + 8]
push eax
call fcn.100c5080
mov edi, eax
add esp, 8
test edi, edi
jne 0x1008c642
lea eax, [esi + 0x584]
mov dword [esp + 0x18], 0xc
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
call fcn.100c2c30
mov ecx, eax
add esi, 0x584
test ecx, ecx
jne 0x1008c67e
push edi
call fcn.100c3fa0
add esp, 4
mov dword [esp + 0x18], 0xc
push esi
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
push ecx
push dword [esp + 0x20]
mov dword [ecx + 8], edi
mov ax, word [ebp + 4]
mov word [ecx + 0x10], ax
call fcn.100c4cc0
add esp, 8
mov dword [esp + 0x18], eax
push esi
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008c6ef
test eax, 0x400000
jne 0x1008c6ef
test al, 1
je 0x1008c793
mov eax, dword [ebp]
test eax, eax
je 0x1008c6ef
cmp eax, 2
jne 0x1008c793
lea eax, [esi + 0x268]
push eax
call ecx
mov ecx, dword [esp + 0x10]
movzx eax, word [ebp + 4]
push eax
push ecx
lea esi, [ecx + 0x160]
call fcn.100c3530
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x1008c72b
push eax
lea eax, [ebp + 8]
push eax
call fcn.100c5080
mov edi, eax
add esp, 8
test edi, edi
je 0x1008c73f
call fcn.100c2c30
mov ecx, eax
test ecx, ecx
jne 0x1008c76a
push edi
call fcn.100c3fa0
add esp, 4
mov eax, dword [esp + 0x10]
add eax, 0x268
mov dword [esp + 0x18], 0xc
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov dword [ecx + 8], edi
mov ax, word [ebp + 4]
push ecx
push esi
mov word [ecx + 0x10], ax
call fcn.100c4cc0
mov dword [esp + 0x20], eax
add esp, 8
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x1008c7b1
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008c850
lea eax, [esi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, word [ebp + 4]
push eax
push esi
call fcn.100c34d0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x1008c807
push eax
lea eax, [ebp + 8]
push eax
call fcn.100c5080
mov edi, eax
add esp, 8
test edi, edi
je 0x1008c83c
call fcn.100c2c30
mov ecx, eax
test ecx, ecx
jne 0x1008c81d
push edi
call fcn.100c3fa0
add esp, 4
jmp 0x1008c83c
mov dword [ecx + 8], edi
mov ax, word [ebp + 4]
mov word [ecx + 0x10], ax
lea eax, [esi + 0x448]
push ecx
push eax
call fcn.100c4cc0
add esp, 8
mov dword [esp + 0x18], eax
lea eax, [esi + 0x584]
push eax
call ebx
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x1008c7d1
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov edx, dword [esp + 0x40]
cmp edx, 4
jb 0x1008c91b
mov ecx, dword [ebp]
lea eax, [ecx*2 + 4]
cmp edx, eax
jb 0x1008c91b
cmp ecx, 0xffff
ja 0x1008c91b
push ecx
call fcn.100c2be0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x1008c8c8
mov dword [esp + 0x18], 0xc
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
xor esi, esi
cmp dword [ebp], esi
jbe 0x1008c8ec
lea edi, [ebp + 4]
movzx eax, word [edi]
push eax
push ebx
call fcn.100c2cc0
add esp, 8
test eax, eax
jne 0x1008c93a
inc esi
add edi, 2
cmp esi, dword [ebp]
jb 0x1008c8d2
movzx edx, word [ebx + 2]
xor eax, eax
test edx, edx
je 0x1008c90e
lea ecx, [ebx + 4]
nop dword [eax]
cmp word [ecx], 1
je 0x1008c90e
inc eax
add ecx, 2
cmp eax, edx
jb 0x1008c900
cmp eax, edx
jne 0x1008c962
push ebx
call fcn.100c3fa0
add esp, 4
mov dword [esp + 0x18], 0x16
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
push ebx
mov dword [esp + 0x1c], 0x16
call fcn.100c3fa0
add esp, 4
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x168]
test ecx, ecx
je 0x1008c98d
push ecx
call fcn.100c3fa0
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [eax + 0x168], ebx
jmp 0x10091ac0
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008c9fd
test eax, 0x400000
jne 0x1008c9fd
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008ca75
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1008ca29
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008ca69
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
movzx eax, word [ebp + 4]
push eax
push esi
call fcn.100c3460
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
mov edx, 0x16
cmovne ecx, edx
mov dword [esp + 0x18], ecx
lea eax, [esi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008ca96
test eax, 0x400000
jne 0x1008ca96
test al, 1
je 0x1008cad2
mov eax, dword [ebp]
test eax, eax
je 0x1008ca96
cmp eax, 2
jne 0x1008cad2
lea eax, [esi + 0x268]
push eax
call edi
movzx eax, word [ebp + 4]
push eax
push dword [esp + 0x14]
call fcn.100c34a0
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
mov edx, 0x16
mov eax, dword [esp + 0x10]
cmovne ecx, edx
add eax, 0x268
push eax
mov dword [esp + 0x1c], ecx
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x1008caf0
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008cb39
nop word [eax + eax]
lea esi, [edi + 0x584]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, word [ebp + 4]
push eax
push edi
call fcn.100c3460
add esp, 8
push esi
call ebx
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x1008cb10
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008cbb9
test eax, 0x400000
jne 0x1008cbb9
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008cc01
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1008cbe5
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008cbf5
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
movzx eax, word [ebp + 4]
push eax
push esi
call fcn.100c3ca0
jmp 0x1008ca34
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008cc22
test eax, 0x400000
jne 0x1008cc22
test al, 1
je 0x1008cc5e
mov eax, dword [ebp]
test eax, eax
je 0x1008cc22
cmp eax, 2
jne 0x1008cc5e
lea eax, [esi + 0x268]
push eax
call edi
movzx eax, word [ebp + 4]
push eax
push dword [esp + 0x14]
call fcn.100c3d30
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
mov edx, 0x16
mov eax, dword [esp + 0x10]
cmovne ecx, edx
add eax, 0x268
push eax
mov dword [esp + 0x1c], ecx
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x1008cc7c
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008ccbc
lea esi, [edi + 0x584]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, word [ebp + 4]
push eax
push edi
call fcn.100c3ca0
add esp, 8
push esi
call ebx
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x1008cc93
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008cd40
test eax, 0x400000
jne 0x1008cd40
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008cd88
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1008cd6c
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008cd7c
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
movzx eax, word [ebp + 4]
push eax
push esi
call fcn.100c3b90
jmp 0x1008ca34
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008cda9
test eax, 0x400000
jne 0x1008cda9
test al, 1
je 0x1008cde5
mov eax, dword [ebp]
test eax, eax
je 0x1008cda9
cmp eax, 2
jne 0x1008cde5
lea eax, [esi + 0x268]
push eax
call edi
movzx eax, word [ebp + 4]
push eax
push dword [esp + 0x14]
call fcn.100c3bf0
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
mov edx, 0x16
mov eax, dword [esp + 0x10]
cmovne ecx, edx
add eax, 0x268
push eax
mov dword [esp + 0x1c], ecx
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x1008ce03
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008ce49
nop word [eax + eax]
lea esi, [edi + 0x584]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, word [ebp + 4]
push eax
push edi
call fcn.100c3b90
add esp, 8
push esi
call ebx
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x1008ce20
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008cecd
test eax, 0x400000
jne 0x1008cecd
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008cf13
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1008cef9
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008cf07
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [ebp + 4]
mov dword [esi + 0x4a4], eax
jmp 0x1008ca49
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008cf34
test eax, 0x400000
jne 0x1008cf34
test al, 1
je 0x1008cf5a
mov eax, dword [ebp]
test eax, eax
je 0x1008cf34
cmp eax, 2
jne 0x1008cf5a
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 4]
mov dword [eax + 0x1f8], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x1008cf78
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008cfb4
nop
lea esi, [edi + 0x584]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 4]
push esi
mov dword [edi + 0x4a4], eax
call ebx
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x1008cf90
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esp + 0x14], ebx
test al, 2
jne 0x1008d059
test eax, 0x400000
jne 0x1008d059
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008d03c
push 1
push eax
push esi
call fcn.100b2350
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10091a71
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0xd0]
and edi, 0x4000000
neg edi
sbb edi, edi
and edi, 0x14
add edi, 0x30
jmp 0x1008d0ab
mov eax, dword [esi + 0xd0]
mov edi, eax
and edi, 0x4000000
neg edi
sbb edi, edi
and edi, 0x14
add edi, 0x30
jmp 0x1008d0ed
lea eax, [esi + 0x268]
push eax
call ecx
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x214]
test ebx, ebx
je 0x1008d081
lea eax, [ebx + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
mov edi, eax
and edi, 0x4000000
neg edi
sbb edi, edi
and edi, 0x14
add edi, 0x30
test ebx, ebx
je 0x1008d0e3
mov eax, dword [ebp + 4]
test eax, eax
je 0x1008d0b6
add eax, edi
jmp 0x1008d0bb
mov eax, 0xffff
mov dword [ebx + 0x354], eax
lea eax, [ebx + 0x584]
push eax
call dword [esp + 0x18]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [esp + 0x14]
test al, 2
jne 0x1008d10a
test eax, 0x400000
jne 0x1008d10a
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ecx
mov eax, dword [ebp + 4]
test eax, eax
je 0x1008d14a
lea ecx, [edi + eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x218], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov eax, dword [esp + 0x10]
mov dword [eax + 0x218], 0xffff
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 0xb
jb 0x1008c91b
lea eax, [esi + 0x268]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push eax
call esi
mov ecx, dword [esp + 0x10]
cmp byte [ebp], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d1b7
or dword [ecx + 0xc8], 0x400
jmp 0x1008d1c1
and dword [ecx + 0xc8], 0xfffffbff
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 1], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d1e3
or dword [ecx + 0xc8], 0x800
jmp 0x1008d1ed
and dword [ecx + 0xc8], 0xfffff7ff
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 2], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d20f
or dword [ecx + 0xc8], 0x1000
jmp 0x1008d219
and dword [ecx + 0xc8], 0xffffefff
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 3], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d23b
or dword [ecx + 0xc8], 0x4000
jmp 0x1008d245
and dword [ecx + 0xc8], 0xffffbfff
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 4], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d267
or dword [ecx + 0xc8], 0x2000
jmp 0x1008d271
and dword [ecx + 0xc8], 0xffffdfff
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 5], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d293
or dword [ecx + 0xc8], 0x8000
jmp 0x1008d29d
and dword [ecx + 0xc8], 0xffff7fff
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 6], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d2bf
or dword [ecx + 0xc8], 0x20000
jmp 0x1008d2c9
and dword [ecx + 0xc8], 0xfffdffff
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 7], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d2eb
or dword [ecx + 0xc8], 0x10000
jmp 0x1008d2f5
and dword [ecx + 0xc8], 0xfffeffff
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 8], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d317
or dword [ecx + 0xc8], 0x40000
jmp 0x1008d321
and dword [ecx + 0xc8], 0xfffbffff
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 9], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d343
or dword [ecx + 0xc8], 0x4000000
jmp 0x1008d34d
and dword [ecx + 0xc8], 0xfbffffff
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 0xa], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008d36f
or dword [ecx + 0xc8], 0x80000
jmp 0x1008d379
and dword [ecx + 0xc8], 0xfff7ffff
mov eax, dword [esp + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call esi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008d7e7
nop dword [eax]
lea edi, [esi + 0x584]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [ebp + 1], 0
je 0x1008d3f3
test esi, esi
je 0x1008d3d3
or dword [esi + 0x4f0], 0x800
jmp 0x1008d3fd
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x1008d40d
mov eax, dword [ecx + 0xcc]
or dword [ecx + 0xc8], 0x800
mov dword [ecx + 0xcc], eax
jmp 0x1008d409
and dword [esi + 0x4f0], 0xfffff7ff
mov eax, dword [esi + 0x4f4]
mov dword [esi + 0x4f4], eax
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 2], 0
je 0x1008d43f
test esi, esi
je 0x1008d42f
mov eax, dword [esi + 0x4f4]
or dword [esi + 0x4f0], 0x1000
mov dword [esi + 0x4f4], eax
jmp 0x1008d475
test ecx, ecx
je 0x1008d479
or dword [ecx + 0xc8], 0x1000
jmp 0x1008d469
test esi, esi
je 0x1008d45b
mov eax, dword [esi + 0x4f4]
and dword [esi + 0x4f0], 0xffffefff
mov dword [esi + 0x4f4], eax
jmp 0x1008d475
test ecx, ecx
je 0x1008d479
and dword [ecx + 0xc8], 0xffffefff
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 3], 0
je 0x1008d4ab
test esi, esi
je 0x1008d49b
mov eax, dword [esi + 0x4f4]
or dword [esi + 0x4f0], 0x4000
mov dword [esi + 0x4f4], eax
jmp 0x1008d4e1
test ecx, ecx
je 0x1008d4e5
or dword [ecx + 0xc8], 0x4000
jmp 0x1008d4d5
test esi, esi
je 0x1008d4c7
mov eax, dword [esi + 0x4f4]
and dword [esi + 0x4f0], 0xffffbfff
mov dword [esi + 0x4f4], eax
jmp 0x1008d4e1
test ecx, ecx
je 0x1008d4e5
and dword [ecx + 0xc8], 0xffffbfff
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 4], 0
je 0x1008d517
test esi, esi
je 0x1008d507
mov eax, dword [esi + 0x4f4]
or dword [esi + 0x4f0], 0x2000
mov dword [esi + 0x4f4], eax
jmp 0x1008d54d
test ecx, ecx
je 0x1008d551
or dword [ecx + 0xc8], 0x2000
jmp 0x1008d541
test esi, esi
je 0x1008d533
mov eax, dword [esi + 0x4f4]
and dword [esi + 0x4f0], 0xffffdfff
mov dword [esi + 0x4f4], eax
jmp 0x1008d54d
test ecx, ecx
je 0x1008d551
and dword [ecx + 0xc8], 0xffffdfff
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 5], 0
je 0x1008d583
test esi, esi
je 0x1008d573
mov eax, dword [esi + 0x4f4]
or dword [esi + 0x4f0], 0x8000
mov dword [esi + 0x4f4], eax
jmp 0x1008d5b9
test ecx, ecx
je 0x1008d5bd
or dword [ecx + 0xc8], 0x8000
jmp 0x1008d5ad
test esi, esi
je 0x1008d59f
mov eax, dword [esi + 0x4f4]
and dword [esi + 0x4f0], 0xffff7fff
mov dword [esi + 0x4f4], eax
jmp 0x1008d5b9
test ecx, ecx
je 0x1008d5bd
and dword [ecx + 0xc8], 0xffff7fff
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 6], 0
je 0x1008d5ef
test esi, esi
je 0x1008d5df
mov eax, dword [esi + 0x4f4]
or dword [esi + 0x4f0], 0x20000
mov dword [esi + 0x4f4], eax
jmp 0x1008d625
test ecx, ecx
je 0x1008d629
or dword [ecx + 0xc8], 0x20000
jmp 0x1008d619
test esi, esi
je 0x1008d60b
mov eax, dword [esi + 0x4f4]
and dword [esi + 0x4f0], 0xfffdffff
mov dword [esi + 0x4f4], eax
jmp 0x1008d625
test ecx, ecx
je 0x1008d629
and dword [ecx + 0xc8], 0xfffdffff
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 7], 0
je 0x1008d65b
test esi, esi
je 0x1008d64b
mov eax, dword [esi + 0x4f4]
or dword [esi + 0x4f0], 0x10000
mov dword [esi + 0x4f4], eax
jmp 0x1008d691
test ecx, ecx
je 0x1008d695
or dword [ecx + 0xc8], 0x10000
jmp 0x1008d685
test esi, esi
je 0x1008d677
mov eax, dword [esi + 0x4f4]
and dword [esi + 0x4f0], 0xfffeffff
mov dword [esi + 0x4f4], eax
jmp 0x1008d691
test ecx, ecx
je 0x1008d695
and dword [ecx + 0xc8], 0xfffeffff
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 8], 0
je 0x1008d6c7
test esi, esi
je 0x1008d6b7
mov eax, dword [esi + 0x4f4]
or dword [esi + 0x4f0], 0x40000
mov dword [esi + 0x4f4], eax
jmp 0x1008d6fd
test ecx, ecx
je 0x1008d701
or dword [ecx + 0xc8], 0x40000
jmp 0x1008d6f1
test esi, esi
je 0x1008d6e3
mov eax, dword [esi + 0x4f4]
and dword [esi + 0x4f0], 0xfffbffff
mov dword [esi + 0x4f4], eax
jmp 0x1008d6fd
test ecx, ecx
je 0x1008d701
and dword [ecx + 0xc8], 0xfffbffff
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 9], 0
je 0x1008d733
test esi, esi
je 0x1008d723
mov eax, dword [esi + 0x4f4]
or dword [esi + 0x4f0], 0x4000000
mov dword [esi + 0x4f4], eax
jmp 0x1008d769
test ecx, ecx
je 0x1008d76d
or dword [ecx + 0xc8], 0x4000000
jmp 0x1008d75d
test esi, esi
je 0x1008d74f
mov eax, dword [esi + 0x4f4]
and dword [esi + 0x4f0], 0xfbffffff
mov dword [esi + 0x4f4], eax
jmp 0x1008d769
test ecx, ecx
je 0x1008d76d
and dword [ecx + 0xc8], 0xfbffffff
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x10]
cmp byte [ebp + 0xa], 0
je 0x1008d79f
test esi, esi
je 0x1008d78f
mov eax, dword [esi + 0x4f4]
or dword [esi + 0x4f0], 0x80000
mov dword [esi + 0x4f4], eax
jmp 0x1008d7d5
test ecx, ecx
je 0x1008d7d5
or dword [ecx + 0xc8], 0x80000
jmp 0x1008d7c9
test esi, esi
je 0x1008d7bb
mov eax, dword [esi + 0x4f4]
and dword [esi + 0x4f0], 0xfff7ffff
mov dword [esi + 0x4f4], eax
jmp 0x1008d7d5
test ecx, ecx
je 0x1008d7d5
and dword [ecx + 0xc8], 0xfff7ffff
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
push edi
call ebx
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x1008d3b0
mov eax, dword [esp + 0x10]
cmp byte [ebp + 9], 0
je 0x1008d84a
mov ecx, dword [eax + 0xd0]
test cl, 2
jne 0x1008d800
test ecx, 0x400000
je 0x1008d84a
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008d84a
lea edi, [esi + 0x584]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 0x1ec], 0
jne 0x1008d843
cmp dword [esi + 0x1e4], 0
jne 0x1008d843
cmp dword [esi + 0x374], 0
jne 0x1008d843
push 1
push 0
push 0
push esi
push 0x1a
call fcn.100ae250
add esp, 0x14
push edi
call ebx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 4
jb 0x1008c91b
lea eax, [esi + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp]
mov dword [eax + 0x1ec], ecx
mov eax, dword [esp + 0x10]
mov byte [eax + 0x1f0], 1
jmp 0x10091ac0
cmp dword [esp + 0x40], 0x80
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008d906
test eax, 0x400000
jne 0x1008d906
mov eax, dword [ebp + 0x1c]
cmp eax, 2
jbe 0x1008d96a
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1008d932
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008d95e
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov ax, word [ebp]
cmp ax, word [esi + 0x482]
jae 0x1009171f
movups xmm0, xmmword [ebp]
movups xmmword [esi + 0x5c], xmm0
movups xmm0, xmmword [ebp + 0x10]
movups xmmword [esi + 0x6c], xmm0
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x7c], eax
jmp 0x1008ca49
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008d98b
test eax, 0x400000
jne 0x1008d98b
test al, 1
je 0x1008d9c7
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x1008d98b
cmp eax, 2
jne 0x1008d9c7
lea eax, [esi + 0x268]
push eax
call edi
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [ebp]
movups xmmword [ecx + 0x238], xmm0
movups xmm0, xmmword [ebp + 0x10]
movups xmmword [ecx + 0x248], xmm0
mov eax, dword [ebp + 0x20]
mov dword [ecx + 0x258], eax
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp + 0x1c]
cmp eax, 1
je 0x1008d9e5
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008da3e
nop dword [eax]
lea edi, [esi + 0x584]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ax, word [ebp]
cmp ax, word [esi + 0x482]
jae 0x1008da30
movups xmm0, xmmword [ebp]
movups xmmword [esi + 0x5c], xmm0
movups xmm0, xmmword [ebp + 0x10]
movups xmmword [esi + 0x6c], xmm0
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x7c], eax
push edi
call ebx
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x1008da00
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 0x98
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test al, 2
jne 0x1008daa9
test eax, 0x400000
jne 0x1008daa9
mov eax, dword [ebp + 0x80]
cmp eax, 2
jbe 0x1008daa5
push 1
push eax
push esi
call fcn.100b2350
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10091a71
jmp 0x1008dad9
xor edi, edi
jmp 0x1008dadd
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008dacd
lea eax, [edi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0x10]
cmp word [ebp], 0x17
jne 0x1008db0c
lea eax, [ebp + 8]
push eax
call fcn.100844f0
add esp, 4
test al, al
je 0x1008db0c
lea eax, [esp + 0x1c]
push ebp
push eax
call fcn.10092120
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x24]
add esp, 8
jmp 0x1008db0e
mov ebx, ebp
test edi, edi
je 0x1008db27
push ebx
push edi
call fcn.100b2500
mov esi, eax
add esp, 8
mov dword [esp + 0x14], esi
jmp 0x1008dbb8
mov dword [esp + 0x14], 0
lea eax, [esi + 0x2b0]
mov ecx, 1
lock xadd dword [eax], ecx
push 0
push 0
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push ebx
push eax
call fcn.100b1d00
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x1008dbb4
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
add eax, 0x2b0
lock xadd dword [eax], ecx
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0x8c]
mov eax, ecx
and eax, 3
cmp al, 3
je 0x1008db8b
mov eax, ecx
and eax, 0x18
cmp al, 0x18
jne 0x1008dc3e
test edi, edi
je 0x1008db9c
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebp
mov eax, 0x16
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x1008db6f
movzx eax, word [ebx]
cmp eax, 2
je 0x1008dbe0
cmp eax, 0x17
jne 0x1008dbdb
lea eax, [ebx + 8]
push eax
call fcn.10086ab0
add esp, 4
test al, al
jne 0x1008db6f
jmp 0x1008dbe6
cmp eax, 0x7b
jne 0x1008dc12
cmp dword [ebx + 4], 0
je 0x1008db6f
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x18], 0x16
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [edi + 0x584]
mov dword [esp + 0x18], 0x66
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
test cl, 0x10
je 0x1008dc63
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x1008dc63
cmp eax, 0x200
jb 0x1008db8b
cmp eax, 0x10000
ja 0x1008db8b
test edi, edi
je 0x1008e44f
test esi, esi
je 0x1008dfae
test cl, 2
je 0x1008dcb5
movzx eax, word [esi + 0x1a8]
test eax, 0x200
jne 0x1008dca3
test al, 4
jne 0x1008dca3
push 0x50000009
push esi
push edi
push dword [esp + 0x1c]
push 5
call fcn.100ade50
mov esi, dword [esp + 0x28]
add esp, 0x14
or word [esi + 0x1a8], 4
mov ecx, dword [ebp + 0x8c]
mov esi, dword [esp + 0x14]
test cl, 1
je 0x1008dd1d
mov eax, dword [ebp + 0x84]
test eax, eax
je 0x1008dccc
mov dword [esi + 0x1a4], eax
jmp 0x1008dcda
test cl, cl
jns 0x1008dcde
mov dword [esi + 0x1a4], 0
mov esi, dword [esp + 0x14]
push 0x5000000a
push esi
push edi
push dword [esp + 0x1c]
push 5
call fcn.100ade50
push dword [esp + 0x28]
push edi
push dword [esp + 0x2c]
push 5
call fcn.100ad900
mov eax, dword [esp + 0x38]
mov ecx, 0xfffb
add esp, 0x24
and word [eax + 0x1a8], cx
mov ecx, dword [ebp + 0x8c]
mov esi, dword [esp + 0x14]
test cl, 4
je 0x1008dd5f
mov eax, dword [edi + 0x30]
and al, 0x7f
cmp al, 8
jne 0x1008dd5f
push 1
push esi
push edi
call fcn.1009f6f0
push 1
push 0x11
push edi
push dword [esp + 0x28]
call fcn.10095d20
push dword [esp + 0x30]
push edi
push dword [esp + 0x34]
push 5
call fcn.100ad900
mov ecx, dword [ebp + 0x8c]
add esp, 0x2c
mov esi, dword [esp + 0x14]
test cl, 0x10
je 0x1008ddf6
test byte [esi + 0x1c], 4
je 0x1008dd87
push 0x5000000b
push esi
push edi
push dword [esp + 0x1c]
push 8
call fcn.100ade50
mov esi, dword [esp + 0x28]
add esp, 0x14
or word [esi + 0x1a8], 2
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x1008ddf2
mov eax, dword [esp + 0x14]
mov dword [eax + 0x94], ecx
mov esi, dword [esp + 0x14]
movzx eax, word [esi + 0x74]
sub eax, 2
je 0x1008ddcc
sub eax, 0x15
je 0x1008ddc3
sub eax, 0x64
jne 0x1008ddd7
add dword [esi + 0x94], 0xc
jmp 0x1008ddd3
add dword [esi + 0x94], 0x34
jmp 0x1008ddd3
add dword [esi + 0x94], 0x20
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x94]
movzx ecx, ax
cmp eax, dword [edi + 0x2e8]
jae 0x1008ddf6
push ecx
push edi
call fcn.1008bd40
add esp, 8
mov esi, dword [esp + 0x14]
test byte [ebp + 0x8c], 8
je 0x1008de29
test byte [esi + 0x1c], 4
jne 0x1008de19
push esi
push edi
push dword [esp + 0x18]
push 8
call fcn.100ad900
mov esi, dword [esp + 0x24]
add esp, 0x10
mov eax, 0xfffd
and word [esi + 0x1a8], ax
mov esi, dword [esp + 0x14]
movzx ecx, word [ebp + 0x94]
test cx, cx
je 0x1008df25
movzx eax, word [esi + 0x1a8]
test eax, 0x800
je 0x1008de5e
cmp word [esi + 0x1ae], cx
jbe 0x1008deb5
and eax, 0xf7ff
mov word [esi + 0x1a8], ax
jmp 0x1008deb1
movzx edx, word [esi + 0x1ae]
cmp dx, cx
ja 0x1008deb5
cmp dx, word [esi + 0x1ac]
jbe 0x1008deb5
or eax, 0x800
push 1
mov word [esi + 0x1a8], ax
push dword [esp + 0x18]
push edi
call fcn.1009f6f0
push 0x5000000c
push dword [esp + 0x24]
push edi
push dword [edi + 4]
push 5
call fcn.100ade50
push dword [esp + 0x34]
push edi
push dword [edi + 4]
push 5
call fcn.100ad900
add esp, 0x30
mov esi, dword [esp + 0x14]
movzx eax, word [esi + 0x1a8]
movzx ecx, word [ebp + 0x94]
test al, 1
je 0x1008dee9
cmp word [esi + 0x1ae], cx
jbe 0x1008df13
push 1
and eax, 0xfffe
mov word [esi + 0x1a8], ax
push dword [esp + 0x18]
push 0
push edi
push 3
jmp 0x1008df07
cmp word [esi + 0x1ae], cx
ja 0x1008df13
push 1
or eax, 1
mov word [esi + 0x1a8], ax
push dword [esp + 0x18]
push 0
push edi
push 4
call fcn.100ae250
mov esi, dword [esp + 0x28]
add esp, 0x14
mov ax, word [ebp + 0x94]
mov word [esi + 0x1aa], ax
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0x8c]
test eax, 0x200
je 0x1008df55
mov al, byte [ebp + 0x96]
and al, 0xfc
mov byte [esi + 0x190], al
mov eax, dword [esp + 0x14]
or byte [eax + 0x190], 1
mov eax, dword [ebp + 0x8c]
mov esi, dword [esp + 0x14]
test eax, 0x100
je 0x1008e42b
cmp word [esi + 0x74], 0x17
jne 0x1008e42b
mov eax, dword [ebp + 0x90]
and eax, 0xfffff
mov dword [esi + 0x18c], eax
mov eax, dword [esp + 0x14]
or dword [eax + 0x18c], 0x80000000
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
movzx eax, word [ebp + 0x94]
test ax, ax
je 0x1008e0e1
mov ecx, dword [edi + 0x1c4]
mov word [edi + 0x48c], ax
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x1008e0e1
nop word [eax + eax]
movzx eax, word [ecx + 0x1a8]
movzx edx, word [ebp + 0x94]
test eax, 0x800
je 0x1008e00c
cmp word [ecx + 0x1ae], dx
jbe 0x1008e063
and eax, 0xf7ff
mov word [ecx + 0x1a8], ax
jmp 0x1008e05f
movzx esi, word [ecx + 0x1ae]
cmp si, dx
ja 0x1008e063
cmp si, word [ecx + 0x1ac]
jbe 0x1008e063
or eax, 0x800
push 1
mov word [ecx + 0x1a8], ax
push dword [esp + 0x18]
push edi
call fcn.1009f6f0
push 0x5000000d
push dword [esp + 0x24]
push edi
push dword [edi + 4]
push 5
call fcn.100ade50
push dword [esp + 0x34]
push edi
push dword [edi + 4]
push 5
call fcn.100ad900
add esp, 0x30
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 0x1a8]
movzx edx, word [ebp + 0x94]
test al, 1
je 0x1008e097
cmp word [ecx + 0x1ae], dx
jbe 0x1008e0c1
push 1
and eax, 0xfffe
mov word [ecx + 0x1a8], ax
push dword [esp + 0x18]
push 0
push edi
push 3
jmp 0x1008e0b5
cmp word [ecx + 0x1ae], dx
ja 0x1008e0c1
push 1
or eax, 1
mov word [ecx + 0x1a8], ax
push dword [esp + 0x18]
push 0
push edi
push 4
call fcn.100ae250
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov ax, word [ebp + 0x94]
mov word [ecx + 0x1aa], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x1008dfe0
mov eax, dword [ebp + 0x8c]
test al, 1
je 0x1008e1b3
mov ecx, dword [ebp + 0x84]
test ecx, ecx
je 0x1008e101
mov dword [edi + 0x3b0], ecx
jmp 0x1008e10f
test al, al
jns 0x1008e10f
mov dword [edi + 0x3b0], 0
mov eax, dword [edi + 0x1c4]
mov dword [esp + 0x14], eax
test eax, eax
je 0x1008e19a
mov ecx, dword [ebp + 0x84]
test ecx, ecx
je 0x1008e133
mov dword [eax + 0x1a4], ecx
jmp 0x1008e146
test byte [ebp + 0x8c], 0x80
je 0x1008e14a
mov dword [eax + 0x1a4], 0
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + 0x1a8]
test cl, 4
je 0x1008e167
and ecx, 0xfffb
mov word [eax + 0x1a8], cx
mov eax, dword [esp + 0x14]
push 0x5000000e
push eax
push edi
push dword [esp + 0x1c]
push 5
call fcn.100ade50
push dword [esp + 0x28]
push edi
push dword [esp + 0x2c]
push 5
call fcn.100ad900
mov eax, dword [esp + 0x38]
add esp, 0x24
mov eax, dword [eax]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1008e121
mov eax, dword [edi + 0x4f4]
and dword [edi + 0x4f0], 0xfffffffb
mov dword [edi + 0x4f4], eax
mov eax, dword [ebp + 0x8c]
test al, 2
je 0x1008e229
mov eax, dword [edi + 0x1c4]
mov dword [esp + 0x14], eax
test eax, eax
je 0x1008e216
mov esi, 0x200
nop word [eax + eax]
movzx ecx, word [eax + 0x1a8]
test cl, 4
jne 0x1008e20c
or ecx, 4
mov word [eax + 0x1a8], cx
mov eax, dword [esp + 0x14]
test word [eax + 0x1a8], si
jne 0x1008e20c
push 0x5000000f
push eax
push edi
push dword [esp + 0x1c]
push 5
call fcn.100ade50
mov eax, dword [esp + 0x28]
add esp, 0x14
mov eax, dword [eax]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1008e1d0
mov eax, dword [edi + 0x4f4]
or dword [edi + 0x4f0], 4
mov dword [edi + 0x4f4], eax
test byte [ebp + 0x8c], 0x10
je 0x1008e307
mov eax, dword [edi + 0x1c4]
mov dword [esp + 0x14], eax
test eax, eax
je 0x1008e2e4
test byte [eax + 0x1c], 4
je 0x1008e267
push 0x50000010
push eax
push edi
push dword [esp + 0x1c]
push 8
call fcn.100ade50
mov eax, dword [esp + 0x28]
add esp, 0x14
or word [eax + 0x1a8], 2
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x1008e2d2
mov eax, dword [esp + 0x14]
mov dword [eax + 0x94], ecx
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 0x74]
sub eax, 2
je 0x1008e2ac
sub eax, 0x15
je 0x1008e2a3
sub eax, 0x64
jne 0x1008e2b7
add dword [ecx + 0x94], 0xc
jmp 0x1008e2b3
add dword [ecx + 0x94], 0x34
jmp 0x1008e2b3
add dword [ecx + 0x94], 0x20
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x94]
movzx edx, ax
cmp eax, dword [edi + 0x2e8]
jae 0x1008e2d6
push edx
push edi
call fcn.1008bd40
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1008e248
mov eax, dword [ebp + 0x88]
test eax, eax
je 0x1008e2f4
mov dword [edi + 0x474], eax
mov eax, dword [edi + 0x4f4]
or dword [edi + 0x4f0], 1
mov dword [edi + 0x4f4], eax
test byte [ebp + 0x8c], 8
je 0x1008e36f
mov eax, dword [edi + 0x1c4]
mov dword [esp + 0x14], eax
test eax, eax
je 0x1008e352
mov esi, 0xfffd
test byte [eax + 0x1c], 4
jne 0x1008e33d
push eax
push edi
push dword [esp + 0x18]
push 8
call fcn.100ad900
mov eax, dword [esp + 0x24]
add esp, 0x10
and word [eax + 0x1a8], si
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1008e323
mov eax, dword [edi + 0x4f4]
and dword [edi + 0x4f0], 0xfffffffe
mov dword [edi + 0x474], 0
mov dword [edi + 0x4f4], eax
test dword [ebp + 0x8c], 0x200
je 0x1008e3c7
mov ecx, dword [edi + 0x1c4]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x1008e3b7
nop dword [eax]
mov al, byte [ebp + 0x96]
and al, 0xfc
mov byte [ecx + 0x190], al
mov eax, dword [esp + 0x14]
or byte [eax + 0x190], 1
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x1008e390
mov al, byte [ebp + 0x96]
and al, 0xfd
or al, 1
mov byte [edi + 0x4b8], al
test dword [ebp + 0x8c], 0x100
je 0x1008e42b
mov ecx, dword [edi + 0x1c4]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x1008e415
cmp word [ecx + 0x74], 0x17
jne 0x1008e40b
mov eax, dword [ebp + 0x90]
and eax, 0xfffff
mov dword [ecx + 0x18c], eax
mov eax, dword [esp + 0x14]
or dword [eax + 0x18c], 0x80000000
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x1008e3e1
mov eax, dword [ebp + 0x90]
and eax, 0xfffff
or eax, 0x80000000
mov dword [edi + 0x368], eax
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xd0]
test al, 2
jne 0x1008e479
test eax, 0x400000
jne 0x1008e479
test al, 1
je 0x1008c91b
cmp dword [ebp + 0x80], 0
jne 0x1008c91b
lea eax, [ecx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx ecx, word [ebp + 0x94]
test cx, cx
je 0x1008e49d
mov eax, dword [esp + 0x10]
mov word [eax + 0x178], cx
test byte [ebp + 0x8c], 0x80
je 0x1008e4b6
mov eax, dword [esp + 0x10]
mov dword [eax + 0x12c], 0
jmp 0x1008e4e9
mov eax, dword [ebp + 0x84]
test eax, eax
je 0x1008e4e9
cmp eax, 0xdbba00
jbe 0x1008e4d6
mov dword [ebp + 0x84], 0xdbba00
mov eax, 0xdbba00
push eax
call fcn.100a7db0
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0x12c], eax
mov eax, dword [ebp + 0x8c]
test al, 1
je 0x1008e53c
test al, al
jns 0x1008e512
mov eax, dword [esp + 0x10]
mov dword [eax + 0x12c], 0
mov ecx, dword [esp + 0x10]
and dword [ecx + 0xc8], 0xfffffffb
jmp 0x1008e54b
mov eax, dword [ebp + 0x84]
test eax, eax
je 0x1008e52f
push eax
call fcn.100a7db0
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0x12c], eax
mov ecx, dword [esp + 0x10]
and dword [ecx + 0xc8], 0xfffffffb
jmp 0x1008e54b
test al, 2
je 0x1008e557
mov ecx, dword [esp + 0x10]
or dword [ecx + 0xc8], 4
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov eax, dword [ebp + 0x8c]
test al, 8
je 0x1008e57c
mov eax, dword [esp + 0x10]
mov dword [eax + 0x170], 0
mov ecx, dword [esp + 0x10]
and dword [ecx + 0xc8], 0xfffffffe
jmp 0x1008e59f
test al, 0x10
je 0x1008e5ab
mov ecx, dword [ebp + 0x88]
test ecx, ecx
je 0x1008e594
mov eax, dword [esp + 0x10]
mov dword [eax + 0x170], ecx
mov ecx, dword [esp + 0x10]
or dword [ecx + 0xc8], 1
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
mov eax, dword [ebp + 0x8c]
test eax, 0x200
je 0x1008e5dc
mov eax, dword [esp + 0x10]
mov cl, byte [ebp + 0x96]
and cl, 0xfc
mov byte [eax + 0x204], cl
mov eax, dword [esp + 0x10]
or byte [eax + 0x204], 1
mov eax, dword [ebp + 0x8c]
mov ecx, dword [esp + 0x10]
test eax, 0x100
je 0x1008e616
test dword [ecx + 0xd0], 0x4000000
je 0x1008e616
mov eax, dword [ebp + 0x90]
and eax, 0xfffff
mov dword [ecx + 0x200], eax
mov eax, dword [esp + 0x10]
or dword [eax + 0x200], 0x80000000
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 0x10
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008e69f
test eax, 0x400000
jne 0x1008e69f
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008e740
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1008e6cb
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008e734
lea eax, [esi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov eax, dword [ebp + 4]
test eax, eax
jne 0x1008e6d8
mov eax, dword [esi + 0x42c]
mov edx, dword [ebp + 8]
test edx, edx
jne 0x1008e6e5
mov edx, dword [esi + 0x434]
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jne 0x1008e6f2
mov ecx, dword [esi + 0x430]
cmp ecx, eax
ja 0x1008fdb1
cmp eax, edx
ja 0x1008fdb1
mov dword [esi + 0x42c], eax
lea eax, [esi + 0x584]
push eax
mov dword [esi + 0x434], edx
mov dword [esi + 0x430], ecx
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008e763
test eax, 0x400000
jne 0x1008e763
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ebx
mov ecx, dword [ebp + 4]
mov eax, dword [esp + 0x10]
test ecx, ecx
jne 0x1008e77d
mov ecx, dword [eax + 0x144]
mov esi, dword [ebp + 8]
test esi, esi
jne 0x1008e78a
mov esi, dword [eax + 0x140]
mov edx, dword [ebp + 0xc]
test edx, edx
jne 0x1008e797
mov edx, dword [eax + 0x13c]
cmp edx, ecx
ja 0x1008e7dc
cmp ecx, esi
ja 0x1008e7dc
mov dword [eax + 0x144], ecx
mov eax, dword [esp + 0x10]
mov dword [eax + 0x140], esi
mov eax, dword [esp + 0x10]
mov dword [eax + 0x13c], edx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
add eax, 0x268
mov dword [esp + 0x18], 0x16
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 0x14
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008e84f
test eax, 0x400000
jne 0x1008e84f
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008e84b
push 1
push eax
push esi
call fcn.100b2350
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10091a71
jmp 0x1008e87f
xor edi, edi
jmp 0x1008e889
lea eax, [esi + 0x268]
push eax
call ecx
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008e877
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1008e8bb
mov edx, eax
cmp eax, 0x3e8
jae 0x1008e8a7
mov dword [ebp + 0xc], 0x3e8
mov eax, 0x3e8
jmp 0x1008e8bb
cmp edx, 0x36ee80
jbe 0x1008e8bb
mov dword [ebp + 0xc], 0x36ee80
mov eax, 0x36ee80
test edi, edi
je 0x1008e8f0
movzx ecx, word [ebp + 0x10]
test cx, cx
je 0x1008e8d2
mov word [edi + 0x48a], cx
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1008e8e5
push eax
call fcn.100a7db0
add esp, 4
mov dword [edi + 0x3c0], eax
lea eax, [edi + 0x584]
jmp 0x1008ca4f
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008e913
test eax, 0x400000
jne 0x1008e913
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ecx
movzx ecx, word [ebp + 0x10]
test cx, cx
je 0x1008e930
mov eax, dword [esp + 0x10]
mov word [eax + 0x176], cx
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1008e94a
push eax
call fcn.100a7db0
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0x1e0], eax
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
lea eax, [esi + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx ecx, word [ebp]
test cx, cx
je 0x1008e999
mov eax, dword [esp + 0x10]
mov word [eax + 0x17c], cx
movzx ecx, word [ebp + 2]
test cx, cx
je 0x1008e9ad
mov eax, dword [esp + 0x10]
mov word [eax + 0x17e], cx
movzx ecx, word [ebp + 4]
test cx, cx
je 0x1008e9c1
mov eax, dword [esp + 0x10]
mov word [eax + 0x174], cx
movzx eax, word [ebp + 6]
test ax, ax
je 0x10091ac0
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0x148], ecx
jmp 0x10091ac0
cmp dword [esp + 0x40], 0x88
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008ea2b
test eax, 0x400000
jne 0x1008ea2b
mov eax, dword [ebp + 0x80]
cmp eax, 2
jbe 0x1008ea27
push 1
push eax
push esi
call fcn.100b2350
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10091a71
jmp 0x1008ea5d
xor edi, edi
jmp 0x1008ea61
lea eax, [esi + 0x268]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push eax
call esi
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008ea55
lea eax, [edi + 0x584]
push eax
call esi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
cmp word [ebp], 0x17
jne 0x1008eaac
cmp word [ebp + 8], 0
jne 0x1008eaac
cmp word [ebp + 0xa], 0
jne 0x1008eaac
cmp word [ebp + 0xc], 0
jne 0x1008eaac
cmp word [ebp + 0xe], 0
jne 0x1008eaac
cmp word [ebp + 0x10], 0
jne 0x1008eaac
mov eax, 0xffff
cmp word [ebp + 0x12], ax
jne 0x1008eaac
lea eax, [esp + 0x1c]
push ebp
push eax
call fcn.10092120
mov esi, dword [esp + 0x18]
lea ebp, [esp + 0x24]
add esp, 8
test edi, edi
je 0x1008eac0
push ebp
push edi
call fcn.100b2500
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x1008eb0d
mov dword [esp + 0x14], 0
lea eax, [esi + 0x2b0]
mov ecx, 1
lock xadd dword [eax], ecx
push 0
push 0
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push ebp
push eax
call fcn.100b1d00
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x1008eb09
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
add eax, 0x2b0
lock xadd dword [eax], ecx
jmp 0x1008c378
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1008c378
cmp eax, dword [edi + 0x224]
je 0x1008c380
mov ecx, 0x200
test word [eax + 0x1a8], cx
jne 0x1008c378
push eax
push 0
push edi
call fcn.100b7420
add esp, 0xc
test eax, eax
jne 0x1008c378
mov edx, dword [edi + 0x228]
test edx, edx
je 0x1008c380
mov eax, dword [esp + 0x14]
movzx eax, word [eax + 0x1a8]
test eax, 0x800
jne 0x1008c380
test al, 1
je 0x1008c380
or esi, 0xffffffff
lea eax, [edx + 0x150]
mov ecx, esi
lock xadd dword [eax], ecx
cmp ecx, 1
jne 0x1008ec32
mov eax, dword [edi + 0x228]
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [eax + 0x70]
test ecx, ecx
je 0x1008ebd2
mov eax, dword [ecx + 0xc]
lea edx, [eax - 1]
mov dword [ecx + 0xc], edx
cmp eax, 1
jg 0x1008ebb2
push ecx
call ebx
add esp, 4
mov eax, dword [edi + 0x228]
mov dword [eax + 0x70], 0
mov eax, dword [edi + 0x228]
mov dword [eax + 0x70], 0
mov eax, dword [edi + 0x228]
cmp byte [eax + 0x1b7], 0
je 0x1008ebff
push dword [eax + 0x90]
call fcn.100b3b00
mov eax, dword [edi + 0x228]
add esp, 4
mov dword [eax + 0x90], 0
mov eax, dword [edi + 0x228]
mov byte [eax + 0x1b7], 0
mov ecx, 0xfffe
mov eax, dword [edi + 0x228]
and word [eax + 0x1a8], cx
push dword [edi + 0x228]
call ebx
add esp, 4
mov eax, 0x1014b634
lock xadd dword [eax], esi
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [edi + 0x228], 0
jmp 0x1008c380
cmp dword [esp + 0x40], 0x88
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008eca0
test eax, 0x400000
jne 0x1008eca0
mov eax, dword [ebp + 0x80]
cmp eax, 2
jbe 0x1008c91b
push 1
push eax
push esi
call fcn.100b2350
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x1008ecda
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push eax
call esi
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008edfe
lea eax, [edi + 0x584]
push eax
call esi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp word [ebp], 0x17
jne 0x1008ed21
cmp word [ebp + 8], 0
jne 0x1008ed21
cmp word [ebp + 0xa], 0
jne 0x1008ed21
cmp word [ebp + 0xc], 0
jne 0x1008ed21
cmp word [ebp + 0xe], 0
jne 0x1008ed21
cmp word [ebp + 0x10], 0
jne 0x1008ed21
mov eax, 0xffff
cmp word [ebp + 0x12], ax
jne 0x1008ed21
lea eax, [esp + 0x1c]
push ebp
push eax
call fcn.10092120
add esp, 8
lea ebp, [esp + 0x1c]
push 0
push dword [edi + 0x2b8]
push ebp
call fcn.100a5fe0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x1008eda6
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 4
jne 0x1008edd2
mov esi, dword [esi + 0xbc]
test esi, esi
je 0x1008eda6
mov eax, dword [esi + 8]
test eax, eax
jne 0x1008ed7d
test byte [0x1014bac8], 0x10
je 0x1008eda0
mov eax, dword [0x1014bb1c]
test eax, eax
je 0x1008eda0
push str.sctp_setopt
push str._s:_NULL_ifa_n
call eax
add esp, 8
jmp 0x1008eda0
push eax
push edi
call fcn.10097dd0
add esp, 8
test eax, eax
je 0x1008ed9b
push dword [esi + 8]
push edi
call fcn.100c82d0
add esp, 8
test eax, eax
je 0x1008eda0
cmp dword [esi + 8], ebx
je 0x1008edd2
mov esi, dword [esi]
test esi, esi
jne 0x1008ed53
mov dword [esp + 0x18], 0x16
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
push ebp
push edi
call fcn.100c9740
mov ecx, dword [esp + 0x20]
test eax, eax
push 1
push 0x11
mov edx, 0x16
push edi
push dword [esp + 0x24]
cmovne ecx, edx
mov dword [esp + 0x30], ecx
call fcn.10095d20
add esp, 0x18
jmp 0x1008edae
add eax, 0x268
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x18], 0x16
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008ee75
test eax, 0x400000
jne 0x1008ee75
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008ee71
push 1
push eax
push esi
call fcn.100b2350
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10091a71
jmp 0x1008eea6
xor ebx, ebx
jmp 0x1008eeb0
lea eax, [esi + 0x268]
push eax
call ecx
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x214]
test ebx, ebx
je 0x1008ee9e
lea eax, [ebx + 0x584]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call eax
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [esp + 0x10]
movzx eax, word [ebp + 4]
dec eax
cmp eax, 0xd
ja case.default.0x1008eebe
jmp dword [eax*4 + 0x10091be8]
mov edi, 0x800
jmp 0x1008ef28
mov edi, 0x1000
jmp 0x1008ef28
mov edi, 0x2000
jmp 0x1008ef28
mov edi, 0x4000
jmp 0x1008ef28
mov edi, 0x8000
jmp 0x1008ef28
mov edi, 0x10000
jmp 0x1008ef28
mov edi, 0x20000
jmp 0x1008ef28
mov edi, 0x40000
jmp 0x1008ef28
mov edi, 0x80000
jmp 0x1008ef28
mov edi, 0x4000000
jmp 0x1008ef28
mov eax, 0x81
jmp 0x1008f133
mov edi, 0x20000000
jmp 0x1008ef28
mov edi, 0x40000000
jmp 0x1008ef28
mov edi, bind
test ebx, ebx
je 0x1008efe6
cmp byte [ebp + 6], 0
mov edx, dword [ebx + 0x4f0]
mov esi, dword [ebx + 0x4f4]
je 0x1008efae
xor ecx, ecx
mov eax, edi
or eax, edx
or ecx, esi
mov dword [ebx + 0x4f0], eax
mov dword [ebx + 0x4f4], ecx
cmp edi, 0x4000000
jne 0x1008efc2
cmp dword [ebx + 0x1ec], 0
jne 0x1008efc2
cmp dword [ebx + 0x1e4], 0
jne 0x1008efc2
cmp dword [ebx + 0x374], 0
jne 0x1008efc2
push 1
push 0
push 0
push ebx
push 0x1a
call fcn.100ae250
add esp, 0x14
lea eax, [ebx + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
not edi
xor eax, eax
and edi, edx
and eax, esi
mov dword [ebx + 0x4f0], edi
mov dword [ebx + 0x4f4], eax
lea eax, [ebx + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp edi, 0x4000000
jne 0x1008f023
test byte [esi + 0xd0], 1
je 0x1008f023
mov eax, dword [ebp]
cmp eax, 2
je 0x1008f004
cmp eax, 1
jne 0x1008f023
mov dword [esp + 0x18], 0x81
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008f044
test eax, 0x400000
jne 0x1008f044
test al, 1
je 0x1008f08c
mov eax, dword [ebp]
test eax, eax
je 0x1008f044
cmp eax, 2
jne 0x1008f08c
lea eax, [esi + 0x268]
push eax
call ecx
cmp byte [ebp + 6], 0
je 0x1008f05f
mov eax, dword [esp + 0x10]
or dword [eax + 0xc8], edi
jmp 0x1008f074
mov ecx, dword [esp + 0x10]
mov eax, edi
not eax
and dword [ecx + 0xc8], eax
and dword [ecx + 0xcc], 0
mov eax, dword [esp + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
jmp 0x1008f092
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x1008f0b0
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008f124
nop dword [eax]
lea ebx, [esi + 0x584]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [ebp + 6], 0
je 0x1008f0ff
test esi, esi
je 0x1008f0ef
or dword [esi + 0x4f0], edi
jmp 0x1008f110
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1008f110
or dword [eax + 0xc8], edi
jmp 0x1008f110
mov eax, edi
not eax
and dword [esi + 0x4f0], eax
and dword [esi + 0x4f4], 0
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call ebx
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x1008f0d0
mov eax, dword [esp + 0x10]
add eax, 0x268
jmp 0x1008ca4f
mov eax, 0x16
mov dword [esp + 0x18], eax
test ebx, ebx
je 0x10091ad0
lea eax, [ebx + 0x584]
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 4
jb 0x1008c91b
lea eax, [esi + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esp + 0x10]
cmp dword [ebp], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008f19c
or dword [ecx + 0xc8], 0x8000000
jmp 0x10091ac0
and dword [ecx + 0xc8], 0xf7ffffff
jmp 0x10091ac0
cmp dword [esp + 0x40], 4
jb 0x1008c91b
lea eax, [esi + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esp + 0x10]
cmp dword [ebp], 0
mov eax, dword [ecx + 0xcc]
mov dword [ecx + 0xcc], eax
je 0x1008f1e8
or dword [ecx + 0xc8], 0x10000000
jmp 0x10091ac0
and dword [ecx + 0xc8], 0xefffffff
jmp 0x10091ac0
cmp dword [esp + 0x40], 0x10
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008f25c
test eax, 0x400000
jne 0x1008f25c
mov eax, dword [ebp + 0xc]
cmp eax, 2
jbe 0x1008f2d0
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1008f288
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008f2c4
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
movzx eax, word [ebp]
cmp ax, word [esi + 0x482]
jae 0x1009171f
mov word [esi + 0x5c], ax
mov ax, word [esi + 0x60]
mov cx, word [ebp + 2]
and ax, 0xf
movzx eax, ax
or cx, ax
mov word [esi + 0x60], cx
mov eax, dword [ebp + 4]
mov dword [esi + 0x64], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x68], eax
jmp 0x1008ca49
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008f2f5
test eax, 0x400000
jne 0x1008f2f5
test al, 1
je 0x1008f35f
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1008f2f5
cmp eax, 2
jne 0x1008f35f
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov cx, word [ebp]
mov word [eax + 0x238], cx
mov edx, dword [esp + 0x10]
movzx eax, word [edx + 0x23c]
and ax, 0xf
movzx ecx, ax
movzx eax, word [ebp + 2]
mov word [edx + 0x23c], ax
mov eax, dword [esp + 0x10]
or word [eax + 0x23c], cx
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 4]
mov dword [eax + 0x240], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 8]
mov dword [eax + 0x244], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp + 0xc]
cmp eax, 1
je 0x1008f37d
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008f3ee
nop dword [eax]
nop dword [eax + eax]
lea edi, [esi + 0x584]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, word [ebp]
cmp ax, word [esi + 0x482]
jae 0x1008f3e0
mov word [esi + 0x5c], ax
mov ax, word [esi + 0x60]
mov cx, word [ebp + 2]
and ax, 0xf
movzx eax, ax
or cx, ax
mov word [esi + 0x60], cx
mov eax, dword [ebp + 4]
mov dword [esi + 0x64], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x68], eax
push edi
call ebx
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x1008f3a0
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 0xc
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008f459
test eax, 0x400000
jne 0x1008f459
mov eax, dword [ebp + 8]
cmp eax, 2
jbe 0x1008f455
push 1
push eax
push esi
call fcn.100b2350
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10091a71
jmp 0x1008f48a
xor edi, edi
jmp 0x1008f494
lea eax, [esi + 0x268]
push eax
call ecx
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008f482
lea eax, [edi + 0x584]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call eax
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov ecx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [esp + 0x10]
cmp word [ebp], 3
jbe 0x1008f4b1
test edi, edi
je 0x1008c91b
lea eax, [edi + 0x584]
push eax
call ebx
jmp 0x1008c91b
test edi, edi
je 0x1008f4d7
mov eax, 0xfff0
and word [edi + 0x60], ax
mov ax, word [ebp]
or word [edi + 0x60], ax
mov eax, dword [ebp + 4]
mov dword [edi + 0x6c], eax
lea eax, [edi + 0x584]
jmp 0x1008ca4f
mov eax, dword [esi + 0xd0]
mov edi, 0xfff0
test al, 2
jne 0x1008f4fd
test eax, 0x400000
jne 0x1008f4fd
test al, 1
je 0x1008f53d
mov eax, dword [ebp + 8]
test eax, eax
je 0x1008f4fd
cmp eax, 2
jne 0x1008f53d
lea eax, [esi + 0x268]
push eax
call ecx
mov eax, dword [esp + 0x10]
and word [eax + 0x23c], di
mov ecx, dword [esp + 0x10]
mov ax, word [ebp]
or word [ecx + 0x23c], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 4]
mov dword [eax + 0x248], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp + 8]
cmp eax, 1
je 0x1008f55b
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008f5b2
nop word [eax + eax]
lea esi, [edi + 0x584]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, 0xfff0
and word [edi + 0x60], ax
mov ax, word [ebp]
or word [edi + 0x60], ax
mov eax, dword [ebp + 4]
push esi
mov dword [edi + 0x6c], eax
call ebx
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x1008f580
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 0x90
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test al, 2
jne 0x1008f61d
test eax, 0x400000
jne 0x1008f61d
mov eax, dword [ebp + 0x80]
cmp eax, 2
jbe 0x1008f619
push 1
push eax
push esi
call fcn.100b2350
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10091a71
jmp 0x1008f64d
xor edi, edi
jmp 0x1008f651
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008f641
lea eax, [edi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0x10]
cmp word [ebp], 0x17
mov eax, 0xffff
jne 0x1008f69e
cmp word [ebp + 8], 0
jne 0x1008f69e
cmp word [ebp + 0xa], 0
jne 0x1008f69e
cmp word [ebp + 0xc], 0
jne 0x1008f69e
cmp word [ebp + 0xe], 0
jne 0x1008f69e
cmp word [ebp + 0x10], 0
jne 0x1008f69e
cmp word [ebp + 0x12], ax
jne 0x1008f69e
lea eax, [esp + 0x1c]
push ebp
push eax
call fcn.10092120
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x24]
add esp, 8
jmp 0x1008f6a0
mov ebx, ebp
test edi, edi
je 0x1008f6b6
push ebx
push edi
call fcn.100b2500
mov esi, eax
add esp, 8
mov dword [esp + 0x14], esi
jmp 0x1008f704
mov dword [esp + 0x14], 0
lea eax, [esi + 0x2b0]
mov ecx, 1
lock xadd dword [eax], ecx
push 0
push 0
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push ebx
push eax
call fcn.100b1d00
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x1008f700
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
add eax, 0x2b0
lock xadd dword [eax], ecx
mov esi, dword [esp + 0x14]
jmp 0x1008f73d
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x1008f73d
movzx eax, word [ebx]
cmp eax, 2
je 0x1008f733
cmp eax, 0x17
jne 0x1008f72a
lea eax, [ebx + 8]
push eax
call fcn.10086ab0
add esp, 4
test al, al
jne 0x1008f73d
jmp 0x1008dbe6
cmp eax, 0x7b
jne 0x1008dc12
cmp dword [ebx + 4], 0
jne 0x1008dbe6
mov eax, 0xffff
cmp word [ebp + 0x88], ax
je 0x1008f765
test edi, edi
je 0x1008c91b
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1008c91b
test edi, edi
je 0x1008fa4b
test esi, esi
je 0x1008f8d4
mov ax, word [ebp + 0x84]
mov word [esi + 0x1aa], ax
mov eax, dword [esp + 0x14]
mov cx, word [ebp + 0x86]
mov word [eax + 0x1ac], cx
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 0x1a8]
movzx edx, word [ecx + 0x1ae]
test eax, 0x800
je 0x1008f7ce
cmp dx, word [ecx + 0x1aa]
ja 0x1008f7c0
cmp dx, word [ecx + 0x1ac]
ja 0x1008f822
and eax, 0xf7ff
mov word [ecx + 0x1a8], ax
jmp 0x1008f81e
cmp dx, word [ecx + 0x1ac]
jbe 0x1008f822
cmp dx, word [ecx + 0x1aa]
ja 0x1008f822
or eax, 0x800
push 1
mov word [ecx + 0x1a8], ax
push dword [esp + 0x18]
push edi
call fcn.1009f6f0
push 0x50000011
push dword [esp + 0x24]
push edi
push dword [edi + 4]
push 5
call fcn.100ade50
push dword [esp + 0x34]
push edi
push dword [edi + 4]
push 5
call fcn.100ad900
add esp, 0x30
mov ecx, dword [esp + 0x14]
movzx edx, word [ecx + 0x1a8]
mov ax, word [ecx + 0x1ae]
test dl, 1
je 0x1008f886
cmp ax, word [ecx + 0x1aa]
jbe 0x1008fa27
push 1
and edx, 0xfffe
mov word [ecx + 0x1a8], dx
push dword [esp + 0x18]
push 0
push edi
push 3
call fcn.100ae250
add esp, 0x14
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp ax, word [ecx + 0x1aa]
ja 0x1008fa27
push 1
or edx, 1
mov word [ecx + 0x1a8], dx
push dword [esp + 0x18]
push 0
push edi
push 4
call fcn.100ae250
add esp, 0x14
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov ecx, dword [edi + 0x1c4]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x1008fa0b
nop word [eax + eax]
mov ax, word [ebp + 0x84]
mov word [ecx + 0x1aa], ax
mov eax, dword [esp + 0x14]
mov cx, word [ebp + 0x86]
mov word [eax + 0x1ac], cx
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 0x1a8]
movzx edx, word [ecx + 0x1ae]
test eax, 0x800
je 0x1008f949
cmp dx, word [ecx + 0x1aa]
ja 0x1008f93b
cmp dx, word [ecx + 0x1ac]
ja 0x1008f99d
and eax, 0xf7ff
mov word [ecx + 0x1a8], ax
jmp 0x1008f999
cmp dx, word [ecx + 0x1ac]
jbe 0x1008f99d
cmp dx, word [ecx + 0x1aa]
ja 0x1008f99d
or eax, 0x800
push 1
mov word [ecx + 0x1a8], ax
push dword [esp + 0x18]
push edi
call fcn.1009f6f0
push 0x50000012
push dword [esp + 0x24]
push edi
push dword [edi + 4]
push 5
call fcn.100ade50
push dword [esp + 0x34]
push edi
push dword [edi + 4]
push 5
call fcn.100ad900
add esp, 0x30
mov ecx, dword [esp + 0x14]
movzx edx, word [ecx + 0x1a8]
mov ax, word [ecx + 0x1ae]
test dl, 1
je 0x1008f9d3
cmp ax, word [ecx + 0x1aa]
jbe 0x1008f9fd
push 1
and edx, 0xfffe
mov word [ecx + 0x1a8], dx
push dword [esp + 0x18]
push 0
push edi
push 3
jmp 0x1008f9f1
cmp ax, word [ecx + 0x1aa]
ja 0x1008f9fd
push 1
or edx, 1
mov word [ecx + 0x1a8], dx
push dword [esp + 0x18]
push 0
push edi
push 4
call fcn.100ae250
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov ecx, dword [ecx]
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x1008f8f0
movzx eax, word [ebp + 0x84]
mov word [edi + 0x48c], ax
movzx eax, word [ebp + 0x86]
mov word [edi + 0x48e], ax
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xd0]
test al, 2
jne 0x1008fa75
test eax, 0x400000
jne 0x1008fa75
test al, 1
je 0x1008c91b
cmp dword [ebp + 0x80], 0
jne 0x1008c91b
lea eax, [ecx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x10]
movzx ecx, word [ebp + 0x84]
mov word [eax + 0x178], cx
mov eax, dword [esp + 0x10]
movzx ecx, word [ebp + 0x86]
mov word [eax + 0x17a], cx
jmp 0x10091ac0
cmp dword [esp + 0x40], 0x88
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test al, 2
jne 0x1008faf7
test eax, 0x400000
jne 0x1008faf7
mov eax, dword [ebp + 0x80]
cmp eax, 2
jbe 0x1008faf3
push 1
push eax
push esi
call fcn.100b2350
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10091a71
jmp 0x1008fb27
xor edi, edi
jmp 0x1008fb2b
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008fb1b
lea eax, [edi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0x10]
cmp word [ebp], 0x17
jne 0x1008fb78
cmp word [ebp + 8], 0
jne 0x1008fb78
cmp word [ebp + 0xa], 0
jne 0x1008fb78
cmp word [ebp + 0xc], 0
jne 0x1008fb78
cmp word [ebp + 0xe], 0
jne 0x1008fb78
cmp word [ebp + 0x10], 0
jne 0x1008fb78
mov eax, 0xffff
cmp word [ebp + 0x12], ax
jne 0x1008fb78
lea eax, [esp + 0x1c]
push ebp
push eax
call fcn.10092120
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x24]
add esp, 8
jmp 0x1008fb7a
mov ebx, ebp
test edi, edi
je 0x1008fb90
push ebx
push edi
call fcn.100b2500
mov esi, eax
add esp, 8
mov dword [esp + 0x14], esi
jmp 0x1008fbda
mov dword [esp + 0x14], 0
lea eax, [esi + 0x2b0]
mov ecx, 1
lock xadd dword [eax], ecx
push 0
push 0
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push ebx
push eax
call fcn.100b1d00
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x1008fbd6
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
add eax, 0x2b0
lock xadd dword [eax], ecx
jmp 0x1008fc13
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x1008fced
movzx eax, word [ebx]
cmp eax, 2
je 0x1008fc89
cmp eax, 0x17
jne 0x1008fc84
lea eax, [ebx + 8]
push eax
call fcn.10086ab0
add esp, 4
test al, al
je 0x1008fc93
test edi, edi
jne 0x1008fced
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xd0]
test al, 2
jne 0x1008fc3d
test eax, 0x400000
jne 0x1008fc3d
test al, 1
je 0x1008c91b
cmp dword [ebp + 0x80], 0
jne 0x1008c91b
lea eax, [ecx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x10]
mov cx, word [ebp + 0x84]
mov word [eax + 0x208], cx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp eax, 0x7b
jne 0x1008fcc0
cmp dword [ebx + 4], 0
je 0x1008fc0b
lea eax, [edi + 0x584]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov dword [esp + 0x18], 0x16
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [edi + 0x584]
mov dword [esp + 0x18], 0x66
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
movzx eax, word [ebp + 0x84]
test esi, esi
je 0x1008fd24
mov word [esi + 0x1b0], ax
lea eax, [edi + 0x584]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov word [edi + 0x4fc], ax
lea eax, [edi + 0x584]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008fd85
test eax, 0x400000
jne 0x1008fd85
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008fde5
jmp 0x10090ea3
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008fdd9
lea eax, [esi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov dword [esp + 0x18], 0x16
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008fe08
test eax, 0x400000
jne 0x1008fe08
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ebx
cmp dword [ebp + 4], 0
mov eax, dword [esp + 0x10]
setne cl
mov byte [eax + 0x230], cl
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008fe7a
test eax, 0x400000
jne 0x1008fe7a
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008fea1
jmp 0x10090ea3
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
jne 0x1008fd9c
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008fec4
test eax, 0x400000
jne 0x1008fec4
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ebx
cmp dword [ebp + 4], 0
mov eax, dword [esp + 0x10]
setne cl
mov byte [eax + 0x231], cl
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x1008ff36
test eax, 0x400000
jne 0x1008ff36
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1008ff5d
jmp 0x10090ea3
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
jne 0x1008fd9c
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1008ff80
test eax, 0x400000
jne 0x1008ff80
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
cmp dword [ebp + 4], 0
jne 0x1008ff93
cmp byte [esi + 0x234], 1
je 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ebx
cmp dword [ebp + 4], 0
mov eax, dword [esp + 0x10]
setne cl
mov byte [eax + 0x232], cl
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x10090005
test eax, 0x400000
jne 0x10090005
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1009002c
jmp 0x10090ea3
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
jne 0x1008fd9c
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1009004f
test eax, 0x400000
jne 0x1009004f
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
cmp dword [ebp + 4], 0
je 0x10090062
cmp byte [esi + 0x232], 0
je 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ebx
cmp dword [ebp + 4], 0
mov eax, dword [esp + 0x10]
jne 0x100900ca
mov byte [eax + 0x234], 0
mov eax, dword [esp + 0x10]
push dword [eax + 0x164]
push 0xc1
call fcn.100c2d60
mov eax, dword [esp + 0x18]
push dword [eax + 0x164]
push 0x80
call fcn.100c2d60
mov eax, dword [esp + 0x20]
add esp, 0x10
add eax, 0x268
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov byte [eax + 0x234], 1
mov eax, dword [esp + 0x10]
push dword [eax + 0x164]
push 0xc1
call fcn.100c2c60
mov eax, dword [esp + 0x18]
push dword [eax + 0x164]
push 0x80
call fcn.100c2c60
mov eax, dword [esp + 0x20]
add esp, 0x10
add eax, 0x268
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x10090154
test eax, 0x400000
jne 0x10090154
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1009017b
jmp 0x10090ea3
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
jne 0x1008fd9c
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1009019e
test eax, 0x400000
jne 0x1009019e
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ebx
cmp dword [ebp + 4], 0
mov eax, dword [esp + 0x10]
setne cl
mov byte [eax + 0x235], cl
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x10090210
test eax, 0x400000
jne 0x10090210
mov eax, dword [ebp]
cmp eax, 2
jbe 0x10090237
jmp 0x10090ea3
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
jne 0x1008fd9c
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1009025a
test eax, 0x400000
jne 0x1009025a
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ebx
cmp dword [ebp + 4], 0
mov eax, dword [esp + 0x10]
setne cl
mov byte [eax + 0x236], cl
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x100902cc
test eax, 0x400000
jne 0x100902cc
mov eax, dword [ebp]
cmp eax, 2
jbe 0x100902f3
jmp 0x10090ea3
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
jne 0x1008fd9c
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x10090316
test eax, 0x400000
jne 0x10090316
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ebx
cmp dword [ebp + 4], 0
mov eax, dword [esp + 0x10]
setne cl
mov byte [eax + 0x237], cl
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x100903b8
test eax, 0x400000
jne 0x100903b8
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1009044f
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x100903e4
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x10090443
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [ebp + 4]
mov dword [esi + 0x4f8], eax
test eax, eax
je 0x1008ca49
mov ecx, dword [esi + 0x1c4]
test ecx, ecx
je 0x1008ca49
nop dword [eax]
nop word [eax + eax]
mov edi, dword [ecx + 0x158]
mov edx, dword [esi + 0x4f8]
cmp edi, edx
jbe 0x10090438
mov eax, dword [ecx + 0x94]
add eax, 0xfffffff4
cmp edi, eax
jbe 0x10090438
cmp edx, eax
cmovb edx, eax
mov dword [ecx + 0x158], edx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x10090410
jmp 0x1008ca49
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x10090472
test eax, 0x400000
jne 0x10090472
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 4]
mov dword [eax + 0x224], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
test dword [ebp + 4], 0xfffffff8
jne 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x10090519
test eax, 0x400000
jne 0x10090519
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1009055f
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10090545
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x10090553
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov al, byte [ebp + 4]
mov byte [esi + 0x4c4], al
jmp 0x1008ca49
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x10090580
test eax, 0x400000
jne 0x10090580
test al, 1
je 0x100905a6
mov eax, dword [ebp]
test eax, eax
je 0x10090580
cmp eax, 2
jne 0x100905a6
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov cl, byte [ebp + 4]
mov byte [eax + 0x228], cl
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x100905c4
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x10090604
nop dword [eax + eax]
lea esi, [edi + 0x584]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [ebp + 4]
push esi
mov byte [edi + 0x4c4], al
call ebx
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x100905e0
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp eax, 0x2001
jg 0x100917f2
je 0x100917c6
cmp eax, 0x1200
jg 0x10090e5e
je 0x10090cef
cmp eax, 0x903
jg 0x10090cc5
je 0x10090b0b
sub eax, 0x901
je 0x100907d0
sub eax, 1
jne case.default.0x10090e6c
cmp dword [esp + 0x40], 4
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x100906c9
test eax, 0x400000
jne 0x100906c9
mov eax, dword [ebp]
cmp eax, 2
jbe 0x10091a71
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x100906ff
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x10090c9a
lea eax, [esi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
cmp byte [esi + 0x4bf], 0
je 0x1009087c
mov eax, dword [esi + 0x30]
and al, 0x7f
cmp al, 8
jne 0x1008fdb1
cmp byte [esi + 0x4d2], 0
jne 0x10090bd1
cmp dword [esi + 0x1ec], 0
jne 0x100907a8
cmp dword [esi + 0x1e4], 0
jne 0x100907a8
movzx edx, word [esi + 0x482]
xor ecx, ecx
test edx, edx
je 0x1009075d
mov eax, dword [esi + 0x21c]
nop dword [eax + eax]
cmp dword [eax], 0
jne 0x100907a8
inc ecx
add eax, 0x30
cmp ecx, edx
jl 0x10090750
push 0
push 0
push 0
push 0
push 1
push 0
push 0
push 0
push esi
call fcn.100a3060
push 1
push 0xc
push esi
push dword [esp + 0x40]
mov dword [esp + 0x4c], eax
call fcn.10095d20
add esp, 0x34
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x584]
mov dword [esp + 0x18], 0x10
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov ebx, dword [esp + 0x40]
xor eax, eax
mov dword [esp + 0x14], eax
cmp ebx, 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x10090837
test eax, 0x400000
jne 0x10090837
mov eax, dword [ebp]
cmp eax, 2
jbe 0x10091a71
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10090873
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x10090c9a
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add eax, 0x268
push eax
call edi
cmp byte [esi + 0x4bf], 0
jne 0x100908a4
lea eax, [esi + 0x584]
mov dword [esp + 0x18], 0x82
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov eax, dword [esi + 0x30]
and al, 0x7f
cmp al, 8
jne 0x10090ade
movzx ecx, word [ebp + 6]
mov edi, ecx
lea eax, [edi*2 + 8]
cmp eax, ebx
ja 0x10090ade
movzx ebx, word [ebp + 4]
test bl, 1
je 0x1009090e
cmp byte [esi + 0x4d2], 0
mov eax, 1
mov dword [esp + 0x14], eax
je 0x10090910
lea eax, [esi + 0x584]
mov dword [esp + 0x18], 0x67
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
xor eax, eax
mov edx, 0xc8
and ebx, 2
cmp cx, dx
jbe 0x1009094e
test eax, eax
je 0x10090952
lea eax, [esi + 0x584]
mov dword [esp + 0x18], 0xc
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
test eax, eax
jne 0x1009095b
test bx, bx
je 0x10090ade
xor edx, edx
test edi, edi
je 0x100909c4
lea ecx, [ebp + 8]
test eax, eax
je 0x10090974
mov ax, word [ecx]
cmp ax, word [esi + 0x480]
jae 0x10090993
test bx, bx
je 0x10090985
mov ax, word [ecx]
cmp ax, word [esi + 0x482]
jae 0x10090993
inc edx
add ecx, 2
cmp edx, edi
jge 0x100909c0
mov eax, dword [esp + 0x14]
jmp 0x10090964
lea eax, [esi + 0x584]
mov dword [esp + 0x18], 0x16
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
movzx ecx, word [ebp + 6]
cmp dword [esp + 0x18], 0
jne 0x10090ab9
test bx, bx
je 0x10090a41
xor edx, edx
test cx, cx
je 0x10090a0a
test edi, edi
je 0x10090a41
lea edi, [ebp + 8]
movzx eax, word [edi]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x21c]
add ecx, ecx
cmp byte [eax + ecx*8 + 0x2f], 2
jne 0x100909fc
mov byte [eax + ecx*8 + 0x2f], 3
movzx eax, word [ebp + 6]
inc edx
add edi, 2
cmp edx, eax
jl 0x100909e2
jmp 0x10090a41
xor eax, eax
cmp ax, word [esi + 0x482]
jae 0x10090a41
xor ecx, ecx
nop word [eax + eax]
mov eax, dword [esi + 0x21c]
cmp byte [ecx + eax + 0x2f], 2
jne 0x10090a32
mov byte [ecx + eax + 0x2f], 3
movzx eax, word [esi + 0x482]
inc edx
add ecx, 0x30
cmp edx, eax
jl 0x10090a20
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10090a68
push 0
push 0
push 0
push 0
push 0
push eax
lea eax, [ebp + 8]
push eax
movzx eax, word [ebp + 6]
push eax
push esi
call fcn.100a3060
add esp, 0x24
jmp 0x10090a73
push 1
push esi
call fcn.100a39d0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10090ab1
push 1
push 0xc
push esi
push dword [esp + 0x1c]
call fcn.10095d20
add esp, 0x10
lea eax, [esi + 0x584]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov dword [esp + 0x18], 0
lea eax, [esi + 0x584]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x584]
mov dword [esp + 0x18], 0x16
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
xor bl, bl
mov dword [esp + 0x1c], 0
cmp dword [esp + 0x40], 8
mov byte [esp + 0x14], bl
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x10090b78
test eax, 0x400000
jne 0x10090b78
mov eax, dword [ebp]
cmp eax, 2
jbe 0x10091a71
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10090bb0
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x10090c9a
lea eax, [esi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
cmp byte [esi + 0x4bf], bl
je 0x1009087c
mov eax, dword [esi + 0x30]
and al, 0x7f
cmp al, 8
jne 0x1008fdb1
cmp byte [esi + 0x4d2], bl
je 0x10090bf9
mov dword [esp + 0x18], 0x67
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
movzx eax, word [ebp + 6]
test ax, ax
jne 0x10090c78
cmp word [ebp + 4], ax
je 0x1008fdb1
xor edx, edx
movzx eax, word [ebp + 4]
test ax, ax
je 0x10090c45
movzx ecx, word [esi + 0x480]
or bl, 2
mov dword [esp + 0x1c], eax
movzx eax, ax
add eax, ecx
mov byte [esp + 0x14], bl
cmp eax, 0xffff
ja 0x1008fdb1
cmp eax, dword [esi + 0x3bc]
jg 0x1008fdb1
push 0
push dword [esp + 0x20]
push edx
push dword [esp + 0x20]
push 0
push 0
push 0
push 0
push esi
call fcn.100a3060
push 1
push 0xc
push esi
push dword [esp + 0x40]
mov dword [esp + 0x4c], eax
call fcn.10095d20
add esp, 0x34
jmp 0x1008fdb9
movzx ecx, word [esi + 0x482]
mov edx, eax
add ecx, edx
mov bl, 1
mov byte [esp + 0x14], bl
cmp ecx, 0xffff
ja 0x1008fdb1
jmp 0x10090c0e
add eax, 0x268
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp eax, 0x1007
jne case.default.0x10090e6c
mov dword [esp + 0x18], 0x82
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [0x1014ba4c], 0
je case.default.0x10090e6c
cmp dword [esp + 0x40], 8
jb 0x1008c91b
cmp dword [ebp + 4], 4
ja 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x10090d67
test eax, 0x400000
jne 0x10090d67
mov eax, dword [ebp]
cmp eax, 2
jbe 0x10090dad
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10090d93
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x10090da1
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov al, byte [ebp + 4]
mov byte [esi + 0x4dd], al
jmp 0x1008ca49
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x10090dce
test eax, 0x400000
jne 0x10090dce
test al, 1
je 0x10090df4
mov eax, dword [ebp]
test eax, eax
je 0x10090dce
cmp eax, 2
jne 0x10090df4
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 4]
mov dword [eax + 0x22c], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x10090e12
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1008f124
nop dword [eax]
lea esi, [edi + 0x584]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [ebp + 4]
push esi
mov byte [edi + 0x4dd], al
call ebx
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x10090e30
mov eax, dword [esp + 0x10]
add eax, 0x268
jmp 0x1008ca4f
add eax, 0xffffedfe
cmp eax, 4
ja case.default.0x10090e6c
jmp dword [eax*4 + 0x10091c20]
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x10090ed8
test eax, 0x400000
jne 0x10090ed8
mov eax, dword [ebp]
cmp eax, 2
jbe 0x10090eff
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1008fdb1
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
jne 0x1008fd9c
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x10090f22
test eax, 0x400000
jne 0x10090f22
test al, 1
je 0x1008c91b
cmp dword [ebp], 0
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call ebx
cmp dword [ebp + 4], 0
jne 0x10090f60
mov eax, dword [esp + 0x10]
mov byte [eax + 0x233], 0
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x268]
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xcc]
mov edx, dword [ecx + 0xc8]
mov dword [esp + 0x20], eax
mov eax, edx
and eax, 8
or eax, 0
je 0x10090fb1
and edx, 0x10
or edx, 0
je 0x10090fb1
mov byte [ecx + 0x233], 1
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x268]
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [ecx + 0x268]
mov dword [esp + 0x18], 0x16
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [ebp + 4]
test eax, eax
je 0x10090ffe
cmp eax, 1
je 0x10090ffe
cmp eax, 2
je 0x10090ffe
cmp eax, 3
jne 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x10091058
test eax, 0x400000
jne 0x10091058
mov eax, dword [ebp]
cmp eax, 2
jbe 0x1009111a
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10091088
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1009110e
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [ebp + 4]
lea ecx, [eax*8]
sub ecx, eax
movups xmm0, xmmword [ecx*8 + 0x101104a0]
movups xmmword [esi + 0x248], xmm0
movups xmm0, xmmword [ecx*8 + 0x101104b0]
movups xmmword [esi + 0x258], xmm0
movups xmm0, xmmword [ecx*8 + 0x101104c0]
movups xmmword [esi + 0x268], xmm0
movq xmm0, qword [ecx*8 + 0x101104d0]
movq qword [esi + 0x278], xmm0
cmp dword [esi + 0x248], 0
mov eax, dword [ebp + 4]
mov dword [esi + 0x280], eax
je 0x1008ca49
mov edi, dword [esi + 0x1c4]
test edi, edi
je 0x1008ca49
mov eax, dword [esi + 0x248]
push edi
push esi
call eax
mov edi, dword [edi]
add esp, 8
test edi, edi
jne 0x100910f6
jmp 0x1008ca49
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x1009113b
test eax, 0x400000
jne 0x1009113b
test al, 1
je 0x10091161
mov eax, dword [ebp]
test eax, eax
je 0x1009113b
cmp eax, 2
jne 0x10091161
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 4]
mov dword [eax + 0x158], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x1009117f
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x214]
test edi, edi
je 0x1009123e
nop word [eax + eax]
lea eax, [edi + 0x584]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 4]
lea ecx, [eax*8]
sub ecx, eax
movups xmm0, xmmword [ecx*8 + 0x101104a0]
movups xmmword [edi + 0x248], xmm0
movups xmm0, xmmword [ecx*8 + 0x101104b0]
movups xmmword [edi + 0x258], xmm0
movups xmm0, xmmword [ecx*8 + 0x101104c0]
movups xmmword [edi + 0x268], xmm0
movq xmm0, qword [ecx*8 + 0x101104d0]
movq qword [edi + 0x278], xmm0
cmp dword [edi + 0x248], 0
mov eax, dword [ebp + 4]
mov dword [edi + 0x280], eax
je 0x10091226
mov esi, dword [edi + 0x1c4]
test esi, esi
je 0x10091226
mov eax, dword [edi + 0x248]
push esi
push edi
call eax
mov esi, dword [esi]
add esp, 8
test esi, esi
jne 0x10091213
lea eax, [edi + 0x584]
push eax
call ebx
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x100911a0
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 0xc
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x100912c2
test eax, 0x400000
jne 0x100912c2
mov eax, dword [ebp + 4]
cmp eax, 2
jbe 0x1009135e
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x100912f2
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x10091352
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
mov eax, dword [esi + 0x278]
test eax, eax
jne 0x10091325
mov eax, 0x81
mov dword [esp + 0x18], eax
lea eax, [esi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
push ebp
push 1
push esi
call eax
add esp, 0xc
mov dword [esp + 0x18], eax
lea eax, [esi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x1008c91b
cmp dword [ebp + 4], 1
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008f124
lea edi, [esi + 0x584]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x278]
test eax, eax
je 0x100913b0
push ebp
push 1
push esi
call eax
add esp, 0xc
push edi
call ebx
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x10091390
mov eax, dword [esp + 0x10]
add eax, 0x268
jmp 0x1008ca4f
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [ebp + 4]
test eax, eax
je 0x100913f7
cmp eax, 1
je 0x100913f7
cmp eax, 2
je 0x100913f7
cmp eax, 3
je 0x100913f7
cmp eax, 4
je 0x100913f7
cmp eax, 5
jne 0x1008c91b
mov eax, dword [esi + 0xd0]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x100914c9
test eax, 0x400000
jne 0x100914c9
mov eax, dword [ebp]
cmp eax, 2
jbe 0x10091512
push 1
push eax
push esi
call fcn.100b2350
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10091a71
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [ebx + 0x59c]
push edi
call esi
mov eax, dword [ebx + 0x288]
lea esi, [ebx + 0x30]
push 1
push esi
push ebx
call eax
mov eax, dword [ebp + 4]
push esi
push ebx
lea eax, [eax + eax*2]
shl eax, 4
add eax, 0x101105c0
movups xmm0, xmmword [eax]
movups xmmword [ebx + 0x284], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebx + 0x294], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ebx + 0x2a4], xmm0
mov eax, dword [ebp + 4]
mov dword [ebx + 0x2b4], eax
mov eax, dword [ebx + 0x284]
call eax
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add esp, 0x14
push edi
call esi
lea eax, [ebx + 0x584]
push eax
call esi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x214]
test ebx, ebx
je 0x10091500
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x584]
push eax
call esi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
jmp 0x10091444
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0xd0]
test al, 2
jne 0x10091533
test eax, 0x400000
jne 0x10091533
test al, 1
je 0x10091559
mov eax, dword [ebp]
test eax, eax
je 0x10091533
cmp eax, 2
jne 0x10091559
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 4]
mov dword [eax + 0x15c], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x10091ad0
mov eax, dword [ebp]
cmp eax, 1
je 0x10091577
cmp eax, 2
jne 0x10091ad0
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
mov dword [esp + 0x14], esi
test esi, esi
je 0x10091636
nop word [eax + eax]
lea ebx, [esi + 0x584]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [esi + 0x59c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x14]
add esi, 0x30
push 1
push esi
push eax
mov eax, dword [eax + 0x288]
call eax
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x20]
push esi
mov esi, ecx
lea eax, [eax + eax*2]
shl eax, 4
add eax, 0x101105c0
push esi
movups xmm0, xmmword [eax]
movups xmmword [ecx + 0x284], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx + 0x294], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x2a4], xmm0
mov eax, dword [ebp + 4]
mov dword [ecx + 0x2b4], eax
mov eax, dword [esi + 0x284]
call eax
add esp, 0x14
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call edi
push ebx
call edi
mov esi, dword [esi + 0x10]
mov dword [esp + 0x14], esi
test esi, esi
jne 0x100915a0
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 8
jb 0x1008c91b
mov eax, dword [esi + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x100916ba
test eax, 0x400000
jne 0x100916ba
mov eax, dword [ebp]
cmp eax, 2
jbe 0x10091738
push 1
push eax
push esi
call fcn.100b2350
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x100916e6
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1009172c
lea eax, [esi + 0x584]
push eax
call edi
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call ebx
movzx ecx, word [ebp + 4]
cmp cx, word [esi + 0x482]
jae 0x1009171f
movzx eax, word [ebp + 6]
push eax
mov eax, ecx
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esi + 0x21c]
push eax
lea eax, [esi + 0x30]
push eax
mov eax, dword [esi + 0x2ac]
push esi
call eax
add esp, 0x10
test eax, eax
jns 0x1008ca49
mov dword [esp + 0x18], 0x16
jmp 0x1008ca49
add eax, 0x268
push eax
call ebx
mov esi, dword [esp + 0x10]
test byte [esi + 0xd0], 1
je 0x1008c91b
cmp dword [ebp], 1
jne 0x1008c91b
lea eax, [esi + 0x268]
push eax
call edi
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x1008f124
nop word [eax + eax]
lea edi, [esi + 0x584]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx ecx, word [ebp + 4]
cmp cx, word [esi + 0x482]
jae 0x100917ae
movzx eax, word [ebp + 6]
push eax
mov eax, ecx
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esi + 0x21c]
push eax
lea eax, [esi + 0x30]
push eax
mov eax, dword [esi + 0x2ac]
push esi
call eax
add esp, 0x10
push edi
call ebx
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x10091770
mov eax, dword [esp + 0x10]
add eax, 0x268
jmp 0x1008ca4f
cmp dword [esp + 0x40], 0x1c
jb 0x1008c91b
push edx
push ebp
call fcn.100a5df0
add esp, 8
mov dword [esp + 0x18], eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp eax, 0x8002
jg 0x10091934
je 0x100918ca
cmp eax, 0x3005
jg 0x10091872
je 0x10090cd0
sub eax, 0x3001
je 0x1009183f
sub eax, 1
je 0x10090cd0
mov dword [esp + 0x18], 0x7b
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 4
jb 0x1008c91b
mov eax, dword [ebp]
test eax, eax
jne 0x1008c91b
mov dword [esi + 0x2b4], eax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp eax, 0x8001
jne case.default.0x10090e6c
mov eax, dword [esp + 0x40]
cmp eax, 0x10
jb 0x1008c91b
movzx ebx, word [ebp]
cmp ebx, 2
je 0x100918a1
cmp ebx, 0x17
jne 0x10091915
cmp eax, 0x1c
jb 0x1008c91b
push edi
lea eax, [esp + 0x1c]
push eax
push edx
push ebp
push esi
push ecx
call fcn.100a5640
add esp, 0x18
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov eax, dword [esp + 0x40]
cmp eax, 0x10
jb 0x1008c91b
movzx ecx, word [ebp]
cmp ecx, 2
je 0x100918ee
cmp ecx, 0x17
jne 0x10091915
cmp eax, 0x1c
jb 0x1008c91b
lea eax, [esp + 0x18]
push eax
push edx
push ebp
push esi
call fcn.100a57c0
add esp, 0x10
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
mov dword [esp + 0x18], 0x66
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp eax, 0x8009
jg 0x10091a90
je 0x10091995
sub eax, 0x8007
je 0x10091962
sub eax, 1
jne case.default.0x10090e6c
mov eax, dword [esp + 0x40]
cmp eax, 0x14
jb 0x1008c91b
push 1
jmp 0x10091971
mov eax, dword [esp + 0x40]
cmp eax, 0x14
jb 0x1008c91b
push 0
push edi
push eax
push ebp
push esi
push ecx
call fcn.100872e0
add esp, 0x18
mov dword [esp + 0x18], eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp dword [esp + 0x40], 0x10
jb 0x1008c91b
test dword [esi + 0xd0], 0x200000
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
je 0x10091a38
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [esi + 0x268]
push eax
call ebx
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x214]
test esi, esi
je 0x100919e0
lea eax, [esi + 0x584]
push eax
call ebx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call edi
test esi, esi
je 0x10091a71
cmp byte [esi + 0x4d4], 1
jne 0x10090bd1
lea eax, [esi + 0x3c]
mov byte [esi + 0x4d4], 0
push eax
call fcn.100c0d10
push 0x50000008
push dword [esi + 0x224]
push esi
push dword [esp + 0x20]
push 2
call fcn.100ade50
push 1
push esi
push dword [esp + 0x30]
call fcn.1009fc50
add esp, 0x24
jmp 0x10090bd9
mov ecx, 1
lea eax, [esi + 0x2b0]
lock xadd dword [eax], ecx
push 0
push 0
push 0
lea eax, [esp + 0x1c]
push ebp
push eax
call fcn.100b1d00
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x100919f0
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
add eax, 0x2b0
lock xadd dword [eax], ecx
mov dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret
cmp eax, 0x9f00
jne case.default.0x10090e6c
cmp dword [esp + 0x40], 4
jb 0x1008c91b
lea eax, [esi + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp]
mov dword [eax + 0x1e8], ecx
mov eax, dword [esp + 0x10]
add eax, 0x268
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100f06e3
add esp, 0x20
ret