Function at 0x46e540
Capabilities:
Enumerate pe sections
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [0x698b9c]
xor eax, esp
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, edx
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x14], esi
test esi, esi
je 0x4702a4
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x4702a4
cmp eax, 0x900
mov edx, dword [ebx + 0x2b4]
mov dword [esp + 0x10], 0
jg 0x472a25
je 0x4728a5
lea edx, [eax - 1]
cmp edx, 0x32
ja case.default.0x473267
jmp dword [edx*4 + 0x473ca4]
cmp edi, 4
jb 0x46f010
add eax, 0xfffffffc
xor edi, edi
cmp eax, 0x17
ja case.0x46e5ca.6
movzx eax, byte [eax + 0x473d90]
jmp dword [eax*4 + 0x473d70]
mov edi, 0x100000
jmp case.0x46e5ca.6
test byte [ebx + 0xd0], 4
je 0x4702a4
cmp dword [0x69f71c], edi
jne 0x46e60b
cmp dword [esi], edi
je 0x46e60b
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov edi, 0x40
jmp case.0x46e5ca.6
mov edi, 0x400000
jmp case.0x46e5ca.6
mov edi, 2
jmp case.0x46e5ca.6
test dword [ebx + 0xd0], 0x4000000
je 0x4702a4
mov edi, 0x800000
jmp case.0x46e5ca.6
mov edi, pe_nt_image_headers32
jmp case.0x46e5ca.6
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4702a4
test eax, 0x400000
jne 0x4702a4
mov eax, dword [esi]
mov edi, 0x200
call fcn.004740b0
mov dword [ebx + 0x1e4], eax
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi], 0
mov eax, edi
je 0x46e6af
mov ecx, dword [esp + 0x18]
cdq
or dword [ebx + 0xc8], eax
or dword [ebx + 0xcc], edx
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x18]
not eax
cdq
and dword [ebx + 0xc8], eax
and dword [ebx + 0xcc], edx
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 4
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 0x10
je 0x46f010
test al, 1
jne 0x46f010
mov edx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x2000000
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xcc], edx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 4
jb 0x46f010
mov esi, dword [esi]
cmp esi, dword [ecx + 0xcc]
ja 0x46f010
mov dword [ebx + 0x218], esi
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 4
jb 0x46f010
mov esi, dword [esi]
cmp esi, 2
jne 0x46e7a5
mov eax, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 8
or dword [ebx + 0xc8], 0x10
mov ecx, eax
mov dword [ebx + 0xcc], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xcc], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp esi, 1
jne 0x46e7e2
mov edx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 8
and dword [ebx + 0xc8], 0xffffffef
mov eax, edx
mov dword [ebx + 0xcc], edx
mov dword [ebx + 0xcc], eax
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
test esi, esi
jne 0x46f010
mov ecx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffffff7
and dword [ebx + 0xc8], 0xffffffef
mov eax, dword [esp + 0x10]
mov edx, ecx
mov dword [ebx + 0xcc], ecx
mov dword [ebx + 0xcc], edx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46e876
test eax, 0x400000
jne 0x46e876
mov eax, dword [esi]
cmp eax, 2
jbe 0x46e8d7
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x46e8ab
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x46e89a
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x46e8d7
mov ecx, dword [esi + 4]
mov dword [edi + 0x328], ecx
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46e8f7
test eax, 0x400000
jne 0x46e8f7
test al, 1
je 0x46e914
mov eax, dword [esi]
test eax, eax
je 0x46e8f7
cmp eax, 2
jne 0x46e914
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esi + 4]
push edi
mov dword [ebx + 0x21c], edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi]
cmp eax, 1
je 0x46e931
cmp eax, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x46e974
lea esp, [esp]
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 4]
push edi
mov dword [ebx + 0x328], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x46e950
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0xc
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46e9e9
test eax, 0x400000
jne 0x46e9e9
mov eax, dword [esi]
cmp eax, 2
jbe 0x46e9e5
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x46ea1a
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
xor edi, edi
jmp 0x46ea1a
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x46ea0d
lea edx, [edi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esi + 4]
test eax, eax
je 0x46ea5b
cmp eax, 0x1f4
jbe 0x46ea5b
mov dword [esp + 0x10], 0x16
test edi, edi
je 0x473c8d
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x46ea99
test eax, eax
je 0x46ea69
mov dword [edi + 0x3bc], eax
mov esi, dword [esi + 8]
test esi, esi
je 0x46ea76
mov dword [edi + 0x3c4], esi
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46eab9
test eax, 0x400000
jne 0x46eab9
test al, 1
je 0x46eae7
mov eax, dword [esi]
test eax, eax
je 0x46eab9
cmp eax, 2
jne 0x46eae7
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 4]
test eax, eax
je 0x46ead3
mov dword [ebx + 0x124], eax
mov eax, dword [esi + 8]
test eax, eax
je 0x46eae0
mov dword [ebx + 0x14c], eax
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi]
cmp eax, 1
je 0x46eb04
cmp eax, 2
jne 0x473c8d
lea edi, [ebx + 0x268]
push edi
mov dword [esp + 0x1c], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x46eb59
nop
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 4]
test eax, eax
je 0x46eb3a
mov dword [ebx + 0x3bc], eax
mov eax, dword [esi + 8]
test eax, eax
je 0x46eb47
mov dword [ebx + 0x3c4], eax
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x46eb20
mov edi, dword [esp + 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 1
jb 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x164]
mov al, byte [esi]
call fcn.00496520
test eax, eax
je 0x46ebc2
push edi
mov dword [esp + 0x14], 0x16
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
push edi
mov byte [ebx + 0x22e], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x28], 0
cmp edi, 8
jb 0x46f010
movzx eax, word [esi + 6]
test ax, ax
jne 0x46ec09
add edi, 0xfffffff8
mov dword [esp + 0x20], edi
jmp 0x46ec1b
movzx eax, ax
lea ecx, [eax + 8]
cmp ecx, edi
ja 0x46f010
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46ec68
test eax, 0x400000
jne 0x46ec68
mov eax, dword [esi]
cmp eax, 2
jbe 0x46ed7d
push eax
mov eax, ebx
call fcn.00466eb0
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x46eca5
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
mov dword [esp + 0x1c], edi
test edi, edi
je 0x46ec90
lea edx, [edi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x46ed7d
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov di, word [ebx + 4]
call fcn.00497260
mov edi, dword [esp + 0x20]
test edi, edi
jbe 0x46ecfb
lea eax, [ebx + 8]
push eax
call fcn.004965b0
mov edi, eax
add esp, 4
test edi, edi
jne 0x46ecff
add esi, 0x57c
push esi
mov dword [esp + 0x14], 0xc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x28]
call fcn.004967e0
test eax, eax
jne 0x46ed40
test edi, edi
je 0x46ed15
push edi
call fcn.005c05f8
add esp, 4
add esi, 0x57c
push esi
mov dword [esp + 0x14], 0xc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov dword [eax + 8], edi
mov cx, word [ebx + 4]
mov word [eax + 0x10], cx
lea ecx, [esi + 0x440]
call fcn.00496840
add esi, 0x57c
push esi
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46eda5
test eax, 0x400000
jne 0x46eda5
test al, 1
je 0x46ee75
mov eax, dword [esi]
test eax, eax
je 0x46eda5
cmp eax, 2
jne 0x46ee75
lea edi, [ebx + 0x268]
push edi
mov dword [esp + 0x1c], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx edx, word [esi + 4]
push edx
mov eax, ebx
call fcn.004972c0
add esp, 4
cmp dword [esp + 0x20], 0
jbe 0x46ee11
mov edi, dword [esp + 0x20]
lea eax, [esi + 8]
push eax
call fcn.004965b0
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
jne 0x46ee0d
mov ecx, dword [esp + 0x18]
push ecx
mov dword [esp + 0x14], 0xc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x18]
call fcn.004967e0
test eax, eax
jne 0x46ee50
mov eax, dword [esp + 0x28]
test eax, eax
je 0x46ee2b
push eax
call fcn.005c05f8
add esp, 4
push edi
mov dword [esp + 0x14], 0xc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x28]
mov dword [eax + 8], edx
mov cx, word [esi + 4]
mov word [eax + 0x10], cx
lea ecx, [ebx + 0x160]
call fcn.00496840
push edi
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov esi, dword [esi]
cmp esi, 1
je 0x46ee92
cmp esi, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [ebx + 0x210]
test esi, esi
je 0x46ef3e
lea ebx, [esi + 0x57c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esp + 0x14]
mov di, word [edx + 4]
call fcn.00497260
cmp dword [esp + 0x20], 0
jbe 0x46eeee
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
add eax, 8
push eax
call fcn.004965b0
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
je 0x46ef2c
call fcn.004967e0
test eax, eax
jne 0x46ef0a
mov eax, dword [esp + 0x28]
test eax, eax
je 0x46ef2c
push eax
call fcn.005c05f8
add esp, 4
jmp 0x46ef2c
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov dword [eax + 8], ecx
mov cx, word [edx + 4]
mov word [eax + 0x10], cx
lea ecx, [esi + 0x440]
call fcn.00496840
mov dword [esp + 0x10], eax
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x46eeb1
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 4
jb 0x46f010
mov esi, dword [esi]
lea eax, [esi + esi + 4]
cmp edi, eax
jb 0x46f010
cmp esi, 0xffff
ja 0x46f010
mov edi, dword [esp + 0x14]
mov si, word [edi]
call fcn.00496ad0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x46efb6
mov dword [esp + 0x10], 0xc
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
xor esi, esi
cmp dword [edi], esi
jbe 0x46efe4
add edi, 4
nop
movzx eax, word [edi]
push eax
mov eax, dword [esp + 0x24]
call fcn.00496af0
add esp, 4
test eax, eax
jne 0x46f02e
mov ecx, dword [esp + 0x14]
inc esi
add edi, 2
cmp esi, dword [ecx]
jb 0x46efc0
mov edx, dword [esp + 0x20]
movzx ecx, word [edx + 2]
xor eax, eax
test ecx, ecx
jbe 0x46f003
add edx, 4
cmp word [edx], 1
je 0x46efff
inc eax
add edx, 2
cmp eax, ecx
jb 0x46eff1
mov edx, dword [esp + 0x20]
cmp eax, ecx
jne 0x46f059
push edx
call fcn.005c05f8
add esp, 4
mov dword [esp + 0x10], 0x16
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x20]
push edx
mov dword [esp + 0x14], 0x16
call fcn.005c05f8
mov eax, dword [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea esi, [ebx + 0x268]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebx + 0x168], 0
je 0x46f082
mov eax, dword [ebx + 0x168]
test eax, eax
je 0x46f082
push eax
call fcn.005c05f8
add esp, 4
mov eax, dword [esp + 0x20]
push esi
mov dword [ebx + 0x168], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46f0fd
test eax, 0x400000
jne 0x46f0fd
mov eax, dword [esi]
cmp eax, 2
jbe 0x46f16c
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x46f132
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x46f121
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x46f16c
mov cx, word [esi + 4]
mov edx, edi
call fcn.00497420
test eax, eax
je 0x46f149
mov dword [esp + 0x10], 0x16
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46f18c
test eax, 0x400000
jne 0x46f18c
test al, 1
je 0x46f1cf
mov eax, dword [esi]
test eax, eax
je 0x46f18c
cmp eax, 2
jne 0x46f1cf
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0x160]
movzx ecx, word [esi + 4]
test eax, eax
je 0x46f1c0
jmp 0x46f1b0
cmp word [eax + 0x10], cx
je 0x46f257
mov eax, dword [eax]
test eax, eax
jne 0x46f1b0
mov dword [esp + 0x10], 0x16
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi]
cmp eax, 1
je 0x46f1ec
cmp eax, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x46f236
jmp 0x46f210
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov cx, word [esi + 4]
mov edx, ebx
call fcn.00497420
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x46f210
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov word [ebx + 0x16c], cx
jmp 0x46f1c8
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46f2b7
test eax, 0x400000
jne 0x46f2b7
mov eax, dword [esi]
cmp eax, 2
jbe 0x46f328
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x46f2ec
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x46f2db
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x46f328
mov ax, word [esi + 4]
push edi
call fcn.00497350
add esp, 4
test eax, eax
je 0x46f305
mov dword [esp + 0x10], 0x16
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46f348
test eax, 0x400000
jne 0x46f348
test al, 1
je 0x46f37d
mov eax, dword [esi]
test eax, eax
je 0x46f348
cmp eax, 2
jne 0x46f37d
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx ecx, word [esi + 4]
push ecx
mov edi, ebx
call fcn.004973c0
add esp, 4
test eax, eax
je 0x46f370
mov dword [esp + 0x10], 0x16
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi]
cmp eax, 1
je 0x46f39a
cmp eax, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x46f3e8
jmp 0x46f3c0
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ax, word [esi + 4]
push ebx
call fcn.00497350
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x46f3c0
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46f45d
test eax, 0x400000
jne 0x46f45d
mov eax, dword [esi]
cmp eax, 2
jbe 0x46f4ce
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x46f492
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x46f481
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x46f4ce
movzx ecx, word [esi + 4]
push ecx
call fcn.00497460
add esp, 4
test eax, eax
je 0x46f4ab
mov dword [esp + 0x10], 0x16
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46f4ee
test eax, 0x400000
jne 0x46f4ee
test al, 1
je 0x46f519
mov eax, dword [esi]
test eax, eax
je 0x46f4ee
cmp eax, 2
jne 0x46f519
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov cx, word [esi + 4]
mov eax, ebx
call fcn.00497510
test eax, eax
je 0x46f512
mov dword [esp + 0x10], 0x16
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi]
cmp eax, 1
je 0x46f536
cmp eax, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x46f579
lea ebx, [edi + 0x57c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx edx, word [esi + 4]
push edx
call fcn.00497460
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x46f551
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46f5ee
test eax, 0x400000
jne 0x46f5ee
mov eax, dword [esi]
cmp eax, 2
jbe 0x46f64f
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x46f623
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x46f612
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x46f64f
mov edx, dword [esi + 4]
mov dword [edi + 0x49c], edx
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46f66f
test eax, 0x400000
jne 0x46f66f
test al, 1
je 0x46f68c
mov eax, dword [esi]
test eax, eax
je 0x46f66f
cmp eax, 2
jne 0x46f68c
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 4]
push edi
mov dword [ebx + 0x1f8], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi]
cmp eax, 1
je 0x46f6a9
cmp eax, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x46f6f4
jmp 0x46f6d0
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esi + 4]
push edi
mov dword [ebx + 0x49c], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x46f6d0
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46f769
test eax, 0x400000
jne 0x46f769
mov eax, dword [esi]
cmp eax, 2
jbe 0x46f7ca
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x46f79e
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x46f78d
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x46f7ca
mov ecx, dword [esi + 4]
mov dword [edi + 0x350], ecx
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x46f7ec
test eax, 0x400000
jne 0x46f7ec
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esi + 4]
push edi
mov dword [ebx + 0x214], edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0xb
jb 0x46f010
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [esi], 0
je 0x46f856
mov eax, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x400
mov dword [ebx + 0xcc], eax
jmp 0x46f86c
mov ecx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffffbff
mov dword [ebx + 0xcc], ecx
cmp byte [esi + 1], 0
je 0x46f88a
mov edx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x800
mov dword [ebx + 0xcc], edx
jmp 0x46f8a0
mov eax, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffff7ff
mov dword [ebx + 0xcc], eax
cmp byte [esi + 2], 0
je 0x46f8be
mov ecx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x1000
mov dword [ebx + 0xcc], ecx
jmp 0x46f8d4
mov edx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xffffefff
mov dword [ebx + 0xcc], edx
cmp byte [esi + 3], 0
je 0x46f8f2
mov eax, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x4000
mov dword [ebx + 0xcc], eax
jmp 0x46f908
mov ecx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xffffbfff
mov dword [ebx + 0xcc], ecx
cmp byte [esi + 4], 0
je 0x46f926
mov edx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x2000
mov dword [ebx + 0xcc], edx
jmp 0x46f93c
mov eax, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xffffdfff
mov dword [ebx + 0xcc], eax
cmp byte [esi + 5], 0
je 0x46f95a
mov ecx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x8000
mov dword [ebx + 0xcc], ecx
jmp 0x46f970
mov edx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xffff7fff
mov dword [ebx + 0xcc], edx
cmp byte [esi + 6], 0
je 0x46f98e
mov eax, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x20000
mov dword [ebx + 0xcc], eax
jmp 0x46f9a4
mov ecx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffdffff
mov dword [ebx + 0xcc], ecx
cmp byte [esi + 7], 0
je 0x46f9c2
mov edx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x10000
mov dword [ebx + 0xcc], edx
jmp 0x46f9d8
mov eax, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffeffff
mov dword [ebx + 0xcc], eax
cmp byte [esi + 8], 0
je 0x46f9f6
mov ecx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x40000
mov dword [ebx + 0xcc], ecx
jmp 0x46fa0c
mov edx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffbffff
mov dword [ebx + 0xcc], edx
cmp byte [esi + 9], 0
je 0x46fa2a
mov eax, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x4000000
mov dword [ebx + 0xcc], eax
jmp 0x46fa40
mov ecx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfbffffff
mov dword [ebx + 0xcc], ecx
cmp byte [esi + 0xa], 0
je 0x46fa5e
mov edx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x80000
mov dword [ebx + 0xcc], edx
jmp 0x46fa74
mov eax, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfff7ffff
mov dword [ebx + 0xcc], eax
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x46fedf
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [esi + 1], 0
je 0x46fac9
test edi, edi
je 0x46fab1
mov ecx, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 0x800
mov dword [edi + 0x4ec], ecx
jmp 0x46fafb
mov edx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x800
mov dword [ebx + 0xcc], edx
jmp 0x46fafb
test edi, edi
je 0x46fae5
mov eax, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xfffff7ff
mov dword [edi + 0x4ec], eax
jmp 0x46fafb
mov ecx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffff7ff
mov dword [ebx + 0xcc], ecx
cmp byte [esi + 2], 0
je 0x46fb35
test edi, edi
je 0x46fb1d
mov edx, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 0x1000
mov dword [edi + 0x4ec], edx
jmp 0x46fb67
mov eax, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x1000
mov dword [ebx + 0xcc], eax
jmp 0x46fb67
test edi, edi
je 0x46fb51
mov ecx, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xffffefff
mov dword [edi + 0x4ec], ecx
jmp 0x46fb67
mov edx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xffffefff
mov dword [ebx + 0xcc], edx
cmp byte [esi + 3], 0
je 0x46fba1
test edi, edi
je 0x46fb89
mov eax, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 0x4000
mov dword [edi + 0x4ec], eax
jmp 0x46fbd3
mov ecx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x4000
mov dword [ebx + 0xcc], ecx
jmp 0x46fbd3
test edi, edi
je 0x46fbbd
mov edx, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xffffbfff
mov dword [edi + 0x4ec], edx
jmp 0x46fbd3
mov eax, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xffffbfff
mov dword [ebx + 0xcc], eax
cmp byte [esi + 4], 0
je 0x46fc0d
test edi, edi
je 0x46fbf5
mov ecx, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 0x2000
mov dword [edi + 0x4ec], ecx
jmp 0x46fc3f
mov edx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x2000
mov dword [ebx + 0xcc], edx
jmp 0x46fc3f
test edi, edi
je 0x46fc29
mov eax, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xffffdfff
mov dword [edi + 0x4ec], eax
jmp 0x46fc3f
mov ecx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xffffdfff
mov dword [ebx + 0xcc], ecx
cmp byte [esi + 5], 0
je 0x46fc79
test edi, edi
je 0x46fc61
mov edx, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 0x8000
mov dword [edi + 0x4ec], edx
jmp 0x46fcab
mov eax, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x8000
mov dword [ebx + 0xcc], eax
jmp 0x46fcab
test edi, edi
je 0x46fc95
mov ecx, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xffff7fff
mov dword [edi + 0x4ec], ecx
jmp 0x46fcab
mov edx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xffff7fff
mov dword [ebx + 0xcc], edx
cmp byte [esi + 6], 0
je 0x46fce5
test edi, edi
je 0x46fccd
mov eax, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 0x20000
mov dword [edi + 0x4ec], eax
jmp 0x46fd17
mov ecx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x20000
mov dword [ebx + 0xcc], ecx
jmp 0x46fd17
test edi, edi
je 0x46fd01
mov edx, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xfffdffff
mov dword [edi + 0x4ec], edx
jmp 0x46fd17
mov eax, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffdffff
mov dword [ebx + 0xcc], eax
cmp byte [esi + 7], 0
je 0x46fd51
test edi, edi
je 0x46fd39
mov ecx, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 0x10000
mov dword [edi + 0x4ec], ecx
jmp 0x46fd83
mov edx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x10000
mov dword [ebx + 0xcc], edx
jmp 0x46fd83
test edi, edi
je 0x46fd6d
mov eax, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xfffeffff
mov dword [edi + 0x4ec], eax
jmp 0x46fd83
mov ecx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffeffff
mov dword [ebx + 0xcc], ecx
cmp byte [esi + 8], 0
je 0x46fdbd
test edi, edi
je 0x46fda5
mov edx, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 0x40000
mov dword [edi + 0x4ec], edx
jmp 0x46fdef
mov eax, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x40000
mov dword [ebx + 0xcc], eax
jmp 0x46fdef
test edi, edi
je 0x46fdd9
mov ecx, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xfffbffff
mov dword [edi + 0x4ec], ecx
jmp 0x46fdef
mov edx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffbffff
mov dword [ebx + 0xcc], edx
cmp byte [esi + 9], 0
je 0x46fe29
test edi, edi
je 0x46fe11
mov eax, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 0x4000000
mov dword [edi + 0x4ec], eax
jmp 0x46fe5b
mov ecx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x4000000
mov dword [ebx + 0xcc], ecx
jmp 0x46fe5b
test edi, edi
je 0x46fe45
mov edx, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xfbffffff
mov dword [edi + 0x4ec], edx
jmp 0x46fe5b
mov eax, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfbffffff
mov dword [ebx + 0xcc], eax
cmp byte [esi + 0xa], 0
je 0x46fe95
test edi, edi
je 0x46fe7d
mov ecx, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 0x80000
mov dword [edi + 0x4ec], ecx
jmp 0x46fec7
mov edx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x80000
mov dword [ebx + 0xcc], edx
jmp 0x46fec7
test edi, edi
je 0x46feb1
mov eax, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xfff7ffff
mov dword [edi + 0x4ec], eax
jmp 0x46fec7
mov ecx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfff7ffff
mov dword [ebx + 0xcc], ecx
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x46fa82
cmp byte [esi + 9], 0
je 0x46ff6e
mov eax, dword [ebx + 0xd0]
test eax, 0x400002
je 0x46ff6e
test al, 8
jne 0x46ff6e
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x46ff6e
lea eax, [ebx + 0x57c]
push eax
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebx + 0x1ec], 0
jne 0x46ff63
cmp dword [ebx + 0x1e4], 0
jne 0x46ff63
cmp dword [ebx + 0x36c], 0
jne 0x46ff63
test dword [ebx + 0x30], 0x100
mov edi, dword [ebx + 4]
jne 0x46ff63
lea esi, [edi + 0x298]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test dword [edi + 0xd0], 0x70000000
jne 0x46ff5c
mov eax, ebx
call fcn.004780c0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 4
jb 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esi]
mov dword [ebx + 0x1ec], ecx
push edi
mov byte [ebx + 0x1f0], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0x80
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x470029
test eax, 0x400000
jne 0x470029
mov eax, dword [esi + 0x1c]
cmp eax, 2
jbe 0x470091
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x47005e
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x47004d
lea edx, [edi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x47008e
mov ax, word [esi]
cmp ax, word [edi + 0x47a]
jae 0x46f141
mov eax, dword [ebp + 0xc]
cmp eax, 0x24
jb 0x47007b
mov eax, 0x24
push eax
lea ecx, [edi + 0x5c]
push esi
push ecx
call fcn.005bfdd0
add esp, 0xc
jmp 0x46f149
mov edi, dword [ebp + 0xc]
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4700b2
test eax, 0x400000
jne 0x4700b2
test al, 1
je 0x4700e9
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4700b2
cmp eax, 2
jne 0x4700e9
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, edi
cmp edi, 0x24
jb 0x4700cb
mov eax, 0x24
push eax
lea edx, [ebx + 0x238]
push esi
push edx
call fcn.005bfdd0
add esp, 0xc
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi + 0x1c]
cmp eax, 1
je 0x470107
cmp eax, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x470169
lea eax, [ebx + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ax, word [esi]
cmp ax, word [ebx + 0x47a]
jae 0x470155
mov eax, edi
cmp edi, 0x24
jb 0x470147
mov eax, 0x24
push eax
lea ecx, [ebx + 0x5c]
push esi
push ecx
call fcn.005bfdd0
add esp, 0xc
lea eax, [ebx + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x470122
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0x98
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4701e1
test eax, 0x400000
jne 0x4701e1
mov eax, dword [esi + 0x80]
cmp eax, 2
jbe 0x470223
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x470216
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x470205
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x470223
mov eax, edi
call fcn.00469520
mov dword [esp + 0x18], eax
jmp 0x470269
push 1
add ebx, 0x2b0
push ebx
mov dword [esp + 0x20], 0
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
push 0
push 0
lea ecx, [esp + 0x20]
push ecx
push esi
lea eax, [esp + 0x2c]
call fcn.00466af0
mov ebx, dword [esp + 0x2c]
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4702bb
push 0xffffffffffffffff
lea edx, [ebx + 0x2b0]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov esi, dword [esp + 0x18]
test edi, edi
jne 0x4702bf
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x8c]
test al, 1
je 0x470283
test al, 2
jne 0x470293
test al, 8
je 0x470328
test al, 0x10
je 0x47034e
test edi, edi
je 0x4702a4
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x16
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x18]
test esi, esi
jne 0x470271
mov eax, dword [esp + 0x14]
cmp word [eax], 0x7b
jne 0x4702fd
cmp dword [eax + 4], esi
je 0x470271
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x10], 0x16
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
add edi, 0x57c
push edi
mov dword [esp + 0x14], 0x273f
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
test al, 0x10
je 0x47034e
mov ecx, dword [edx + 0x88]
test ecx, ecx
jbe 0x47034e
cmp ecx, 0x200
jb 0x470293
cmp ecx, 0x10000
ja 0x470293
test edi, edi
je 0x470b6d
test esi, esi
je 0x4707c8
test al, 2
je 0x470396
movzx eax, word [esi + 0x1a4]
test eax, 0x200
jne 0x47038e
test al, 4
jne 0x47038e
push 0x50000009
push edi
push ebx
mov eax, esi
mov edx, 5
call fcn.00476bf0
mov edx, dword [esp + 0x20]
add esp, 0xc
or word [esi + 0x1a4], 4
mov ecx, dword [edx + 0x8c]
test cl, 1
je 0x4703f4
mov eax, dword [edx + 0x84]
test eax, eax
je 0x4703b3
mov dword [esi + 0x1a0], eax
jmp 0x4703c1
test cl, cl
jns 0x4703c1
mov dword [esi + 0x1a0], 0
push 0x5000000a
push edi
push ebx
mov eax, esi
mov edx, 5
call fcn.00476bf0
add esp, 0xc
push esi
push edi
push ebx
push 5
call fcn.004767e0
mov edx, dword [esp + 0x24]
mov eax, 0xfffb
add esp, 0x10
and word [esi + 0x1a4], ax
test byte [edx + 0x8c], 4
je 0x47042b
mov ecx, dword [edi + 0x30]
and cl, 0x7f
cmp cl, 8
jne 0x47042b
push esi
push edi
call fcn.0048f730
push 1
push 0x11
push edi
push ebx
call fcn.0048dd70
push esi
push edi
push ebx
push 5
call fcn.004767e0
mov edx, dword [esp + 0x3c]
add esp, 0x28
test byte [edx + 0x8c], 0x10
je 0x4705a4
mov edx, dword [esp + 0x18]
test byte [edx + 0x1c], 4
je 0x47055d
test ebx, ebx
je 0x47055d
mov esi, edx
mov eax, dword [esi + 0x20]
add esi, 8
test eax, eax
je 0x470463
cmp eax, 8
jne 0x47055d
mov dword [esi + 0x28], 0
mov dword [esi + 0x30], 0x5000000b
call fcn.00464cd0
cmp eax, 1
jne 0x47055d
cmp dword [esi + 0x1c], 0
je 0x47049b
push 0xffffffffffffffff
lea eax, [ebx + 0x2b0]
push eax
mov dword [esi + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
cmp dword [esi + 0x20], 0
je 0x4704b7
push 0xffffffffffffffff
lea ecx, [edi + 0x460]
push ecx
mov dword [esi + 0x20], 0
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov eax, dword [esi + 0x24]
mov dword [esp + 0x20], eax
test eax, eax
je 0x47055d
mov dword [esi + 0x24], 0
mov esi, eax
push 0xffffffffffffffff
lea edx, [esi + 0x150]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
cmp eax, 1
jne 0x47055d
mov eax, dword [esi + 0x70]
test eax, eax
je 0x47050e
cmp dword [eax + 0xc], 1
jg 0x470504
dec dword [eax + 0xc]
cmp dword [eax + 0xc], 0
jg 0x470507
push eax
call fcn.005c05f8
add esp, 4
jmp 0x470507
dec dword [eax + 0xc]
mov dword [esi + 0x70], 0
cmp byte [esi + 0x1b3], 0
je 0x470534
mov eax, esi
mov esi, dword [eax + 0x90]
call fcn.00466100
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x90], 0
mov esi, ecx
mov edx, 0xfffe
and word [esi + 0x1a4], dx
push esi
mov byte [esi + 0x1b3], 0
call fcn.005c05f8
add esp, 4
push 0xffffffffffffffff
push 0x69f39c
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov ecx, dword [esp + 0x18]
or word [ecx + 0x1a4], 2
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x88]
test eax, eax
jbe 0x4705a4
mov dword [ecx + 0x94], eax
cmp word [ecx + 0x74], 0x7b
jne 0x47058b
add dword [ecx + 0x94], 0xc
mov ecx, dword [ecx + 0x94]
cmp ecx, dword [edi + 0x2e8]
jae 0x4705a4
push ecx
mov ecx, edi
call fcn.0046dbc0
add esp, 4
mov esi, dword [esp + 0x14]
test byte [esi + 0x8c], 8
je 0x470692
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x1c], 4
jne 0x47067e
test dword [edi + 0x30], 0x200
jne 0x47067e
mov edx, ecx
movzx eax, word [edx + 0x1a4]
test al, 8
jne 0x47067e
test ebx, ebx
je 0x47067e
test al, 2
jne 0x47067e
mov eax, dword [ebx + 0x130]
mov esi, ecx
add esi, 8
test byte [esi + 0x14], 4
mov dword [esp + 0x20], eax
jne 0x47067e
mov dword [esi + 0x30], 0
mov dword [esi + 0x18], 8
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], esi
call fcn.00464be0
mov edx, dword [esp + 0x20]
push esi
push edx
mov dword [esi + 0x2c], eax
call fcn.00464c10
add esp, 8
test eax, eax
jne 0x47067e
cmp dword [esi + 0x1c], eax
je 0x470652
add ebx, 0x2b0
push 1
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
call ebx
jmp 0x470658
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
cmp dword [esi + 0x20], 0
je 0x470669
push 1
lea eax, [edi + 0x460]
push eax
call ebx
cmp dword [esi + 0x24], 0
je 0x47067e
mov ecx, dword [esp + 0x18]
push 1
add ecx, 0x150
push ecx
call ebx
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edx, 0xfffd
and word [eax + 0x1a4], dx
movzx eax, word [esi + 0x94]
test ax, ax
jbe 0x47077b
mov ebx, dword [esp + 0x18]
mov ecx, 0x800
test word [ebx + 0x1a4], cx
je 0x4706cb
cmp word [ebx + 0x1aa], ax
jbe 0x47071c
mov edx, 0xf7ff
and word [ebx + 0x1a4], dx
jmp 0x47071c
movzx ecx, word [ebx + 0x1aa]
cmp cx, ax
ja 0x47071c
cmp cx, word [ebx + 0x1a8]
jbe 0x47071c
mov eax, 0x800
or word [ebx + 0x1a4], ax
push ebx
push edi
call fcn.0048f730
mov ecx, dword [edi + 4]
push 0x5000000c
push edi
push ecx
mov eax, ebx
mov edx, 5
call fcn.00476bf0
mov edx, dword [edi + 4]
add esp, 0x14
push ebx
push edi
push edx
push 5
call fcn.004767e0
add esp, 0x10
test byte [ebx + 0x1a4], 1
je 0x470746
mov ax, word [ebx + 0x1aa]
cmp ax, word [esi + 0x94]
jbe 0x47076d
mov ecx, 0xfffe
and word [ebx + 0x1a4], cx
push edi
push 3
jmp 0x470761
mov dx, word [ebx + 0x1aa]
cmp dx, word [esi + 0x94]
ja 0x47076d
or word [ebx + 0x1a4], 1
push edi
push 4
mov edx, ebx
xor ecx, ecx
call fcn.00478720
add esp, 8
mov ax, word [esi + 0x94]
mov word [ebx + 0x1a6], ax
test dword [esi + 0x8c], 0x200
je 0x470b4a
mov ecx, dword [esp + 0x14]
mov dl, byte [ecx + 0x96]
mov eax, dword [esp + 0x18]
and dl, 0xfd
add edi, 0x57c
or dl, 1
push edi
mov byte [eax + 0x18c], dl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
movzx eax, word [edx + 0x94]
test ax, ax
jbe 0x4708e2
mov esi, dword [edi + 0x1c4]
mov word [edi + 0x484], ax
test esi, esi
je 0x4708e2
mov eax, edx
nop
mov ecx, 0x800
test word [esi + 0x1a4], cx
je 0x47081c
mov dx, word [esi + 0x1aa]
cmp dx, word [eax + 0x94]
jbe 0x470875
mov ecx, 0xf7ff
and word [esi + 0x1a4], cx
jmp 0x470875
movzx ecx, word [esi + 0x1aa]
cmp cx, word [eax + 0x94]
ja 0x470875
cmp cx, word [esi + 0x1a8]
jbe 0x470875
mov edx, 0x800
or word [esi + 0x1a4], dx
push esi
push edi
call fcn.0048f730
mov eax, dword [edi + 4]
push 0x5000000d
push edi
push eax
mov eax, esi
mov edx, 5
call fcn.00476bf0
mov ecx, dword [edi + 4]
add esp, 0x14
push esi
push edi
push ecx
push 5
call fcn.004767e0
mov eax, dword [esp + 0x24]
add esp, 0x10
test byte [esi + 0x1a4], 1
je 0x47089f
mov dx, word [esi + 0x1aa]
cmp dx, word [eax + 0x94]
jbe 0x4708ca
mov eax, 0xfffe
and word [esi + 0x1a4], ax
push edi
push 3
jmp 0x4708ba
mov cx, word [esi + 0x1aa]
cmp cx, word [eax + 0x94]
ja 0x4708ca
or word [esi + 0x1a4], 1
push edi
push 4
mov edx, esi
xor ecx, ecx
call fcn.00478720
mov eax, dword [esp + 0x1c]
add esp, 8
mov dx, word [eax + 0x94]
mov word [esi + 0x1a6], dx
mov esi, dword [esi]
test esi, esi
jne 0x4707f0
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x8c]
test cl, 1
je 0x47099a
mov eax, dword [edx + 0x84]
test eax, eax
je 0x470907
mov dword [edi + 0x3a8], eax
jmp 0x470915
test cl, cl
jns 0x470915
mov dword [edi + 0x3a8], 0
mov esi, dword [edi + 0x1c4]
test esi, esi
je 0x470987
nop
mov eax, dword [edx + 0x84]
test eax, eax
je 0x470932
mov dword [esi + 0x1a0], eax
jmp 0x470945
test byte [edx + 0x8c], 0x80
je 0x470945
mov dword [esi + 0x1a0], 0
test byte [esi + 0x1a4], 4
je 0x47095a
mov eax, 0xfffb
and word [esi + 0x1a4], ax
push 0x5000000e
push edi
push ebx
mov eax, esi
mov edx, 5
call fcn.00476bf0
add esp, 0xc
push esi
push edi
push ebx
push 5
call fcn.004767e0
mov esi, dword [esi]
mov edx, dword [esp + 0x24]
add esp, 0x10
test esi, esi
jne 0x470920
mov ecx, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xfffffffb
mov dword [edi + 0x4ec], ecx
test byte [edx + 0x8c], 2
je 0x470a02
mov esi, dword [edi + 0x1c4]
test esi, esi
je 0x4709ef
lea ecx, [ecx]
test byte [esi + 0x1a4], 4
jne 0x4709e9
or word [esi + 0x1a4], 4
movzx eax, word [esi + 0x1a4]
test eax, 0x200
jne 0x4709e9
push 0x5000000f
push edi
push ebx
mov eax, esi
mov edx, 5
call fcn.00476bf0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov esi, dword [esi]
test esi, esi
jne 0x4709b0
mov eax, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 4
mov dword [edi + 0x4ec], eax
test byte [edx + 0x8c], 0x10
je 0x470aac
mov esi, dword [edi + 0x1c4]
test esi, esi
je 0x470a89
lea esp, [esp]
test byte [esi + 0x1c], 4
je 0x470a40
push 0x50000010
push edi
push ebx
mov eax, esi
mov edx, 8
call fcn.00476bf0
mov edx, dword [esp + 0x20]
add esp, 0xc
or word [esi + 0x1a4], 2
mov eax, dword [edx + 0x88]
test eax, eax
jbe 0x470a83
mov dword [esi + 0x94], eax
cmp word [esi + 0x74], 0x7b
jne 0x470a66
add dword [esi + 0x94], 0xc
mov eax, dword [esi + 0x94]
cmp eax, dword [edi + 0x2e8]
jae 0x470a83
push eax
mov ecx, edi
call fcn.0046dbc0
mov edx, dword [esp + 0x18]
add esp, 4
mov esi, dword [esi]
test esi, esi
jne 0x470a20
mov eax, dword [edx + 0x88]
test eax, eax
jbe 0x470a99
mov dword [edi + 0x46c], eax
mov ecx, dword [edi + 0x4ec]
or dword [edi + 0x4e8], 1
mov dword [edi + 0x4ec], ecx
test byte [edx + 0x8c], 8
je 0x470b06
mov esi, dword [edi + 0x1c4]
test esi, esi
je 0x470ae9
nop
test byte [esi + 0x1c], 4
jne 0x470ad7
push esi
push edi
push ebx
push 8
call fcn.004767e0
mov edx, dword [esp + 0x24]
add esp, 0x10
mov eax, 0xfffd
and word [esi + 0x1a4], ax
mov esi, dword [esi]
test esi, esi
jne 0x470ac0
mov ecx, dword [edi + 0x4ec]
and dword [edi + 0x4e8], 0xfffffffe
mov dword [edi + 0x46c], 0
mov dword [edi + 0x4ec], ecx
test dword [edx + 0x8c], 0x200
je 0x470b4a
mov eax, dword [edi + 0x1c4]
test eax, eax
je 0x470b38
lea esp, [esp]
mov cl, byte [edx + 0x96]
and cl, 0xfd
or cl, 1
mov byte [eax + 0x18c], cl
mov eax, dword [eax]
test eax, eax
jne 0x470b20
mov dl, byte [edx + 0x96]
and dl, 0xfd
or dl, 1
mov byte [edi + 0x4b0], dl
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x470b93
test eax, 0x400000
jne 0x470b93
test al, 1
je 0x46f010
cmp dword [edx + 0x80], 0
jne 0x46f010
lea esi, [ebx + 0x268]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + 0x94]
xor edx, edx
cmp cx, dx
jbe 0x470bb9
mov word [ebx + 0x178], cx
test byte [eax + 0x8c], 0x80
je 0x470bca
mov dword [ebx + 0x12c], edx
jmp 0x470bf2
mov ecx, dword [eax + 0x84]
cmp ecx, edx
je 0x470bf2
cmp ecx, 0xdbba00
jbe 0x470be6
mov dword [eax + 0x84], 0xdbba00
mov ecx, dword [eax + 0x84]
mov dword [ebx + 0x12c], ecx
mov ecx, dword [eax + 0x8c]
test cl, 1
je 0x470c29
test cl, cl
jns 0x470c10
mov dword [ebx + 0x12c], edx
and dword [ebx + 0xc8], 0xfffffffb
jmp 0x470c35
mov ecx, dword [eax + 0x84]
cmp ecx, edx
je 0x470c20
mov dword [ebx + 0x12c], ecx
and dword [ebx + 0xc8], 0xfffffffb
jmp 0x470c35
test cl, 2
je 0x470c41
or dword [ebx + 0xc8], 4
mov ecx, dword [ebx + 0xcc]
mov dword [ebx + 0xcc], ecx
mov ecx, dword [eax + 0x8c]
test cl, 8
je 0x470c67
mov dword [ebx + 0x170], edx
mov edx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xfffffffe
mov dword [ebx + 0xcc], edx
jmp 0x470c8f
test cl, 0x10
je 0x470c8f
mov ecx, dword [eax + 0x88]
cmp ecx, edx
jbe 0x470c7c
mov dword [ebx + 0x170], ecx
mov ecx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 1
mov dword [ebx + 0xcc], ecx
test dword [eax + 0x8c], 0x200
je 0x470cad
mov dl, byte [eax + 0x96]
and dl, 0xfd
or dl, 1
mov byte [ebx + 0x200], dl
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0x10
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x470d1e
test eax, 0x400000
jne 0x470d1e
mov eax, dword [esi]
cmp eax, 2
jbe 0x470da7
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x470d53
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x470d42
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x470da7
mov eax, dword [esi + 4]
mov edx, eax
test eax, eax
jne 0x470d62
mov edx, dword [edi + 0x424]
mov eax, dword [esi + 8]
mov ecx, eax
test eax, eax
jne 0x470d71
mov ecx, dword [edi + 0x42c]
mov esi, dword [esi + 0xc]
mov eax, esi
test esi, esi
jne 0x470d80
mov eax, dword [edi + 0x428]
cmp eax, edx
ja 0x46f141
cmp edx, ecx
ja 0x46f141
mov dword [edi + 0x424], edx
mov dword [edi + 0x42c], ecx
mov dword [edi + 0x428], eax
jmp 0x46f149
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x470dc9
test eax, 0x400000
jne 0x470dc9
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 4]
test eax, eax
jne 0x470de3
mov eax, dword [ebx + 0x144]
mov ecx, dword [esi + 8]
mov edx, ecx
test ecx, ecx
jne 0x470df2
mov edx, dword [ebx + 0x140]
mov esi, dword [esi + 0xc]
mov ecx, esi
test esi, esi
jne 0x470e01
mov ecx, dword [ebx + 0x13c]
cmp ecx, eax
ja 0x4733af
cmp eax, edx
ja 0x4733af
mov dword [ebx + 0x144], eax
mov dword [ebx + 0x140], edx
push edi
mov dword [ebx + 0x13c], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0x14
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x470e94
test eax, 0x400000
jne 0x470e94
mov eax, dword [esi]
cmp eax, 2
jbe 0x470e90
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x470ec5
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
xor edi, edi
jmp 0x470ec5
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x470eb8
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esi + 0xc]
test eax, eax
jbe 0x470ee7
cmp eax, 0x3e8
jae 0x470eda
mov dword [esi + 0xc], 0x3e8
mov eax, 0x36ee80
cmp dword [esi + 0xc], eax
jbe 0x470ee7
mov dword [esi + 0xc], eax
test edi, edi
je 0x470f2b
movzx eax, word [esi + 0x10]
test ax, ax
jbe 0x470efb
mov word [edi + 0x482], ax
mov esi, dword [esi + 0xc]
test esi, esi
jbe 0x470f08
mov dword [edi + 0x3b8], esi
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x470f4d
test eax, 0x400000
jne 0x470f4d
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, word [esi + 0x10]
test ax, ax
jbe 0x470f6a
mov word [ebx + 0x176], ax
mov esi, dword [esi + 0xc]
test esi, esi
jbe 0x470f77
mov dword [ebx + 0x1e0], esi
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, word [esi]
test ax, ax
je 0x470fb9
mov word [ebx + 0x17c], ax
movzx eax, word [esi + 2]
test ax, ax
je 0x470fc9
mov word [ebx + 0x17e], ax
movzx eax, word [esi + 4]
test ax, ax
je 0x470fd9
mov word [ebx + 0x174], ax
movzx eax, word [esi + 6]
test ax, ax
je 0x470feb
movzx edx, ax
mov dword [ebx + 0x148], edx
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0x88
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x47105f
test eax, 0x400000
jne 0x47105f
mov eax, dword [esi + 0x80]
cmp eax, 2
jbe 0x47109f
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x471094
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x471083
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x47109f
mov eax, edi
call fcn.00469520
mov esi, eax
jmp 0x4710e9
push 1
add ebx, 0x2b0
push ebx
mov dword [esp + 0x28], 0
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
push 0
push 0
lea ecx, [esp + 0x28]
push ecx
push esi
lea eax, [esp + 0x2c]
call fcn.00466af0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4710f3
mov edx, dword [esp + 0x1c]
push 0xffffffffffffffff
add edx, 0x2b0
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov esi, dword [esp + 0x20]
test edi, edi
je case.default.0x4713e4
jmp 0x4710f7
mov esi, dword [esp + 0x20]
test esi, esi
je case.default.0x4713e4
cmp esi, dword [edi + 0x224]
je 0x46ea30
mov eax, 0x200
test word [esi + 0x1a4], ax
jne case.default.0x4713e4
push edi
mov eax, esi
xor ecx, ecx
call fcn.0046d7b0
add esp, 4
test eax, eax
jne case.default.0x4713e4
mov eax, dword [edi + 0x228]
test eax, eax
je 0x46ea30
movzx ecx, word [esi + 0x1a4]
test ecx, 0x800
jne 0x46ea30
test cl, 1
je 0x46ea30
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
push 0xffffffffffffffff
add eax, 0x150
push eax
call ebx
cmp eax, 1
jne 0x471209
mov ecx, dword [edi + 0x228]
mov eax, dword [ecx + 0x70]
xor esi, esi
cmp eax, esi
je 0x4711a8
cmp dword [eax + 0xc], 1
jg 0x471191
call fcn.0047c400
jmp 0x471196
mov ecx, eax
dec dword [ecx + 0xc]
mov ecx, dword [edi + 0x228]
mov dword [ecx + 0x70], esi
mov edx, dword [edi + 0x228]
mov dword [edx + 0x70], esi
mov eax, dword [edi + 0x228]
cmp byte [eax + 0x1b3], 0
je 0x4711d2
mov esi, dword [eax + 0x90]
call fcn.00466100
mov eax, dword [edi + 0x228]
mov dword [eax + 0x90], 0
mov ecx, dword [edi + 0x228]
mov byte [ecx + 0x1b3], 0
mov eax, dword [edi + 0x228]
mov edx, 0xfffe
and word [eax + 0x1a4], dx
mov eax, dword [edi + 0x228]
push eax
call fcn.005c05f8
add esp, 4
push 0xffffffffffffffff
push 0x69f39c
call ebx
mov dword [edi + 0x228], 0
jmp 0x46ea30
cmp edi, 0x88
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x471273
test eax, 0x400000
jne 0x471273
mov eax, dword [esi + 0x80]
cmp eax, 2
jbe 0x46f010
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x4712ac
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x471297
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x46f010
mov eax, dword [edi + 0x2b8]
push 0
push esi
call fcn.0047abd0
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x471306
test byte [ebx + 0xd0], 4
jne 0x471331
mov esi, dword [ebx + 0xbc]
test esi, esi
je 0x471306
mov edx, dword [esi + 8]
test edx, edx
je 0x471300
mov eax, edi
call fcn.00485e10
test eax, eax
je 0x4712f7
push edi
call fcn.0049b9f0
add esp, 4
test eax, eax
je 0x471300
mov edx, dword [esp + 0x20]
cmp dword [esi + 8], edx
je 0x471331
mov esi, dword [esi]
test esi, esi
jne 0x4712d8
add edi, 0x57c
push edi
mov dword [esp + 0x14], 0x16
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x14]
mov esi, edi
call fcn.0049b990
test eax, eax
je 0x471348
mov dword [esp + 0x10], 0x16
push 1
push 0x11
jmp 0x473082
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4713a5
test eax, 0x400000
jne 0x4713a5
mov eax, dword [esi]
cmp eax, 2
jbe 0x4713a1
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x4713d6
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
xor edi, edi
jmp 0x4713d6
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x4713c9
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx eax, word [esi + 4]
dec eax
cmp eax, 0xd
ja case.default.0x4713e4
jmp dword [eax*4 + 0x473da8]
mov eax, 0x800
jmp 0x471451
mov eax, 0x1000
jmp 0x471451
mov eax, 0x2000
jmp 0x471451
mov eax, 0x4000
jmp 0x471451
mov eax, 0x8000
jmp 0x471451
mov eax, 0x10000
jmp 0x471451
mov eax, 0x20000
jmp 0x471451
mov eax, 0x40000
jmp 0x471451
mov eax, 0x80000
jmp 0x471451
mov eax, 0x4000000
jmp 0x471451
mov dword [esp + 0x10], 0x273d
jmp 0x46ea30
mov eax, 0x20000000
jmp 0x471451
mov eax, 0x40000000
jmp 0x471451
mov eax, connect
xor ecx, ecx
mov dword [esp + 0x14], eax
cmp edi, ecx
je 0x471500
cmp byte [esi + 6], cl
je 0x4714cf
or dword [edi + 0x4e8], eax
or dword [edi + 0x4ec], ecx
cmp eax, 0x4000000
jne 0x47308c
cmp dword [edi + 0x1ec], ecx
jne 0x47308c
cmp dword [edi + 0x1e4], ecx
jne 0x47308c
cmp dword [edi + 0x36c], ecx
jne 0x47308c
push edi
push 0x1c
xor edx, edx
call fcn.00478720
add esp, 8
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
not eax
and dword [edi + 0x4e8], eax
and dword [edi + 0x4ec], ecx
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp eax, 0x4000000
jne 0x471524
test byte [ebx + 0xd0], 1
je 0x471524
mov eax, dword [esi]
cmp eax, 2
je 0x4730ba
cmp eax, 1
je 0x4730ba
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x471544
test eax, 0x400000
jne 0x471544
test al, 1
je 0x47157d
mov eax, dword [esi]
cmp eax, ecx
je 0x471544
cmp eax, 2
jne 0x47157d
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [esi + 6], 0
je 0x471563
mov ecx, dword [esp + 0x14]
or dword [ebx + 0xc8], ecx
jmp 0x471576
mov edx, dword [esp + 0x14]
not edx
and dword [ebx + 0xc8], edx
and dword [ebx + 0xcc], 0
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi]
cmp eax, 1
je 0x47159a
cmp eax, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x47163a
lea esp, [esp]
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor eax, eax
cmp byte [esi + 6], al
je 0x4715fc
cmp edi, eax
je 0x4715ea
mov ecx, dword [esp + 0x14]
or dword [edi + 0x4e8], ecx
or dword [edi + 0x4ec], eax
jmp 0x471626
mov edx, dword [esp + 0x14]
or dword [ebx + 0xc8], edx
or dword [ebx + 0xcc], eax
jmp 0x471626
cmp edi, eax
je 0x471614
mov ecx, dword [esp + 0x14]
not ecx
and dword [edi + 0x4e8], ecx
and dword [edi + 0x4ec], eax
jmp 0x471626
mov edx, dword [esp + 0x14]
not edx
and dword [ebx + 0xc8], edx
and dword [ebx + 0xcc], eax
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x4715c0
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 4
jb 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi], 0
je 0x4716a9
mov ecx, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x8000000
push edi
mov dword [ebx + 0xcc], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov edx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xf7ffffff
push edi
mov dword [ebx + 0xcc], edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 4
jb 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi], 0
je 0x47172a
mov eax, dword [ebx + 0xcc]
or dword [ebx + 0xc8], 0x10000000
push edi
mov dword [ebx + 0xcc], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0xcc]
and dword [ebx + 0xc8], 0xefffffff
push edi
mov dword [ebx + 0xcc], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0x10
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4717b2
test eax, 0x400000
jne 0x4717b2
mov eax, dword [esi + 0xc]
cmp eax, 2
jbe 0x471840
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x4717e7
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x4717d6
lea edx, [edi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x471840
movzx eax, word [esi]
cmp ax, word [edi + 0x47a]
jae 0x471306
mov word [edi + 0x5c], ax
mov ax, word [edi + 0x60]
mov cx, word [esi + 2]
and ax, 0xf
movzx eax, ax
or cx, ax
mov word [edi + 0x60], cx
mov edx, dword [esi + 4]
mov dword [edi + 0x64], edx
mov eax, dword [esi + 8]
mov dword [edi + 0x68], eax
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x471861
test eax, 0x400000
jne 0x471861
test al, 1
je 0x4718ad
mov eax, dword [esi + 0xc]
test eax, eax
je 0x471861
cmp eax, 2
jne 0x4718ad
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx ecx, word [esi]
mov word [ebx + 0x238], cx
mov dx, word [ebx + 0x23c]
movzx ecx, word [esi + 2]
and dx, 0xf
movzx eax, dx
or cx, ax
mov word [ebx + 0x23c], cx
mov edx, dword [esi + 4]
mov dword [ebx + 0x240], edx
mov eax, dword [esi + 8]
push edi
mov dword [ebx + 0x244], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi + 0xc]
cmp eax, 1
je 0x4718cb
cmp eax, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x47193d
jmp 0x4718f0
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, word [esi]
cmp ax, word [ebx + 0x47a]
jae 0x47192f
mov cx, word [ebx + 0x60]
mov word [ebx + 0x5c], ax
mov dx, word [esi + 2]
and cx, 0xf
movzx eax, cx
or dx, ax
mov word [ebx + 0x60], dx
mov eax, dword [esi + 4]
mov dword [ebx + 0x64], eax
mov ecx, dword [esi + 8]
mov dword [ebx + 0x68], ecx
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x4718f0
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0xc
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4719b3
test eax, 0x400000
jne 0x4719b3
mov eax, dword [esi + 8]
cmp eax, 2
jbe 0x4719af
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x4719e4
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
xor edi, edi
jmp 0x4719e4
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x4719d7
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp word [esi], 3
jbe 0x471a19
test edi, edi
je 0x4719fb
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x10], 0x16
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x471a5d
mov ecx, 0xfff0
and word [edi + 0x60], cx
movzx eax, word [edi + 0x60]
mov dx, word [esi]
or dx, ax
mov word [edi + 0x60], dx
mov eax, dword [esi + 4]
mov dword [edi + 0x6c], eax
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x471a7e
test eax, 0x400000
jne 0x471a7e
test al, 1
je 0x471abb
mov eax, dword [esi + 8]
test eax, eax
je 0x471a7e
cmp eax, 2
jne 0x471abb
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, 0xfff0
and word [ebx + 0x23c], cx
movzx eax, word [ebx + 0x23c]
mov dx, word [esi]
or dx, ax
mov word [ebx + 0x23c], dx
mov eax, dword [esi + 4]
push edi
mov dword [ebx + 0x248], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi + 8]
cmp eax, 1
je 0x471ad9
cmp eax, 2
jne 0x473c8d
lea edi, [ebx + 0x268]
push edi
mov dword [esp + 0x1c], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x471b3c
jmp 0x471b00
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, 0xfff0
and word [ebx + 0x60], cx
movzx eax, word [ebx + 0x60]
mov dx, word [esi]
or dx, ax
mov word [ebx + 0x60], dx
mov eax, dword [esi + 4]
push edi
mov dword [ebx + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x471b00
mov edi, dword [esp + 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0x90
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x471bb0
test eax, 0x400000
jne 0x471bb0
mov eax, dword [esi + 0x80]
cmp eax, 2
jbe 0x471bf0
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x471be5
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x471bd4
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x471bf0
mov eax, edi
call fcn.00469520
mov esi, eax
jmp 0x471c3a
push 1
add ebx, 0x2b0
push ebx
mov dword [esp + 0x28], 0
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
push 0
push 0
lea edx, [esp + 0x28]
push edx
push esi
lea eax, [esp + 0x2c]
call fcn.00466af0
mov ebx, dword [esp + 0x2c]
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x471c40
push 0xffffffffffffffff
lea eax, [ebx + 0x2b0]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov esi, dword [esp + 0x20]
test edi, edi
je 0x471c5f
jmp 0x471c44
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x471c5f
mov eax, dword [esp + 0x14]
cmp word [eax], 0x7b
jne 0x4702fd
cmp dword [eax + 4], esi
jne 0x4719ee
mov ecx, dword [esp + 0x14]
mov edx, 0xffff
cmp word [ecx + 0x88], dx
jne 0x4719ea
test edi, edi
je 0x471f11
test esi, esi
je 0x471dc5
mov ax, word [ecx + 0x84]
mov word [esi + 0x1a6], ax
movzx eax, word [ecx + 0x86]
mov ecx, 0x800
mov word [esi + 0x1a8], ax
test word [esi + 0x1a4], cx
movzx ecx, word [esi + 0x1aa]
je 0x471cd2
cmp cx, word [esi + 0x1a6]
ja 0x471cc4
cmp cx, ax
ja 0x471d1c
mov edx, 0xf7ff
and word [esi + 0x1a4], dx
jmp 0x471d1c
cmp cx, ax
jbe 0x471d1c
cmp cx, word [esi + 0x1a6]
ja 0x471d1c
mov eax, 0x800
or word [esi + 0x1a4], ax
push esi
push edi
call fcn.0048f730
mov ecx, dword [edi + 4]
push 0x50000011
push edi
push ecx
mov eax, esi
mov edx, 5
call fcn.00476bf0
mov edx, dword [edi + 4]
add esp, 0x14
push esi
push edi
push edx
push 5
call fcn.004767e0
add esp, 0x10
test byte [esi + 0x1a4], 1
je 0x471d77
mov ax, word [esi + 0x1aa]
cmp ax, word [esi + 0x1a6]
jbe 0x47308c
mov ecx, 0xfffe
and word [esi + 0x1a4], cx
push edi
push 3
mov edx, esi
xor ecx, ecx
call fcn.00478720
add esp, 8
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov dx, word [esi + 0x1aa]
cmp dx, word [esi + 0x1a6]
ja 0x47308c
or word [esi + 0x1a4], 1
push edi
push 4
mov edx, esi
xor ecx, ecx
call fcn.00478720
add esp, 8
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x1c4]
mov ebx, ecx
test esi, esi
je 0x471ed2
jmp 0x471de0
mov ax, word [ebx + 0x84]
mov word [esi + 0x1a6], ax
movzx eax, word [ebx + 0x86]
mov ecx, 0x800
mov word [esi + 0x1a8], ax
test word [esi + 0x1a4], cx
movzx ecx, word [esi + 0x1aa]
je 0x471e2d
cmp cx, word [esi + 0x1a6]
ja 0x471e1f
cmp cx, ax
ja 0x471e77
mov edx, 0xf7ff
and word [esi + 0x1a4], dx
jmp 0x471e77
cmp cx, ax
jbe 0x471e77
cmp cx, word [esi + 0x1a6]
ja 0x471e77
mov eax, 0x800
or word [esi + 0x1a4], ax
push esi
push edi
call fcn.0048f730
mov ecx, dword [edi + 4]
push 0x50000012
push edi
push ecx
mov eax, esi
mov edx, 5
call fcn.00476bf0
mov edx, dword [edi + 4]
add esp, 0x14
push esi
push edi
push edx
push 5
call fcn.004767e0
add esp, 0x10
test byte [esi + 0x1a4], 1
je 0x471ea1
mov ax, word [esi + 0x1aa]
cmp ax, word [esi + 0x1a6]
jbe 0x471ec8
mov ecx, 0xfffe
and word [esi + 0x1a4], cx
push edi
push 3
jmp 0x471ebc
mov dx, word [esi + 0x1aa]
cmp dx, word [esi + 0x1a6]
ja 0x471ec8
or word [esi + 0x1a4], 1
push edi
push 4
mov edx, esi
xor ecx, ecx
call fcn.00478720
add esp, 8
mov esi, dword [esi]
test esi, esi
jne 0x471de0
mov ax, word [ebx + 0x84]
mov word [edi + 0x484], ax
mov cx, word [ebx + 0x86]
mov word [edi + 0x486], cx
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x471f37
test eax, 0x400000
jne 0x471f37
test al, 1
je 0x46f010
cmp dword [ecx + 0x80], 0
jne 0x46f010
lea esi, [ebx + 0x268]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x14]
mov dx, word [eax + 0x84]
mov word [ebx + 0x178], dx
mov ax, word [eax + 0x86]
push esi
mov word [ebx + 0x17a], ax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0x88
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x471fd8
test eax, 0x400000
jne 0x471fd8
mov eax, dword [esi + 0x80]
cmp eax, 2
jbe 0x472016
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x47200d
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x471ffc
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x472016
mov eax, edi
call fcn.00469520
jmp 0x472060
push 1
add ebx, 0x2b0
push ebx
mov dword [esp + 0x28], 0
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
push 0
push 0
lea edx, [esp + 0x28]
push edx
push esi
lea eax, [esp + 0x2c]
call fcn.00466af0
mov ebx, dword [esp + 0x2c]
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4720bc
push 0xffffffffffffffff
lea eax, [ebx + 0x2b0]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov eax, dword [esp + 0x20]
test edi, edi
je 0x4720f3
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x472083
cmp word [esi], 0x7b
jne 0x4702fd
cmp dword [esi + 4], eax
jne 0x4719ee
test edi, edi
je 0x4720f7
test eax, eax
je 0x4720c2
mov cx, word [esi + 0x84]
add edi, 0x57c
push edi
mov word [eax + 0x1ac], cx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x20]
jmp 0x47206c
mov dx, word [esi + 0x84]
mov word [edi + 0x4f4], dx
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x14]
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x47211d
test eax, 0x400000
jne 0x47211d
test al, 1
je 0x46f010
cmp dword [esi + 0x80], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ax, word [esi + 0x84]
push edi
mov word [ebx + 0x204], ax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x47217b
test eax, 0x400000
jne 0x47217b
mov eax, dword [esi]
cmp eax, 2
jbe 0x4721b4
jmp 0x473293
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x47219f
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x471306
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4721d6
test eax, 0x400000
jne 0x4721d6
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 4], 0
push edi
setne dl
mov byte [ebx + 0x22c], dl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x472233
test eax, 0x400000
jne 0x472233
mov eax, dword [esi]
cmp eax, 2
jbe 0x47226c
jmp 0x473293
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x472257
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x471306
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x47228e
test eax, 0x400000
jne 0x47228e
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 4], 0
push edi
setne cl
mov byte [ebx + 0x22d], cl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4722eb
test eax, 0x400000
jne 0x4722eb
mov eax, dword [esi]
cmp eax, 2
jbe 0x472324
jmp 0x473293
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x47230f
lea edx, [edi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x471306
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x472346
test eax, 0x400000
jne 0x472346
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
cmp dword [esi + 4], 0
jne 0x472359
cmp byte [ebx + 0x230], 1
je 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 4], 0
push edi
setne al
mov byte [ebx + 0x22e], al
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4723b6
test eax, 0x400000
jne 0x4723b6
mov eax, dword [esi]
cmp eax, 2
jbe 0x4723ef
jmp 0x473293
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x4723da
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x471306
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x472411
test eax, 0x400000
jne 0x472411
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
cmp dword [esi + 4], 0
je 0x472424
cmp byte [ebx + 0x22e], 0
je 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 4], 0
jne 0x472475
mov byte [ebx + 0x230], 0
mov eax, dword [ebx + 0x164]
mov cl, 0xc1
call fcn.00496560
mov eax, dword [ebx + 0x164]
mov cl, 0x80
call fcn.00496560
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov byte [ebx + 0x230], 1
mov eax, dword [ebx + 0x164]
test eax, eax
je 0x47249c
cmp byte [eax + 0xc1], 0
jne 0x47249c
inc byte [eax + 0x100]
mov byte [eax + 0xc1], 1
mov ebx, dword [ebx + 0x164]
test ebx, ebx
je 0x4724bc
cmp byte [ebx + 0x80], 0
jne 0x4724bc
inc byte [ebx + 0x100]
mov byte [ebx + 0x80], 1
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4724ff
test eax, 0x400000
jne 0x4724ff
mov eax, dword [esi]
cmp eax, 2
jbe 0x472538
jmp 0x473293
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x472523
lea edx, [edi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x471306
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x47255a
test eax, 0x400000
jne 0x47255a
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 4], 0
push edi
setne al
mov byte [ebx + 0x231], al
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4725b7
test eax, 0x400000
jne 0x4725b7
mov eax, dword [esi]
cmp eax, 2
jbe 0x4725f0
jmp 0x473293
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x4725db
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x471306
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x472612
test eax, 0x400000
jne 0x472612
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 4], 0
push edi
setne dl
mov byte [ebx + 0x232], dl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x47266f
test eax, 0x400000
jne 0x47266f
mov eax, dword [esi]
cmp eax, 2
jbe 0x4726a8
jmp 0x473293
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x472693
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x471306
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4726ca
test eax, 0x400000
jne 0x4726ca
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 4], 0
push edi
setne cl
mov byte [ebx + 0x233], cl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x472755
test eax, 0x400000
jne 0x472755
mov eax, dword [esi]
cmp eax, 2
jbe 0x472806
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x47278e
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x472779
lea edx, [edi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x472806
mov esi, dword [esi + 4]
mov dword [edi + 0x4f0], esi
test esi, esi
jbe 0x47308c
mov eax, dword [edi + 0x1c4]
test eax, eax
je 0x47308c
lea ecx, [ecx]
mov edx, dword [eax + 0x158]
mov esi, dword [edi + 0x4f0]
cmp edx, esi
jbe 0x4727dd
mov ecx, dword [eax + 0x94]
add ecx, 0xfffffff4
cmp edx, ecx
jbe 0x4727dd
mov dword [eax + 0x158], esi
cmp esi, ecx
jae 0x4727dd
mov dword [eax + 0x158], ecx
mov eax, dword [eax]
test eax, eax
jne 0x4727b0
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x472828
test eax, 0x400000
jne 0x472828
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 4]
push edi
mov dword [ebx + 0x220], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 4
jb 0x46f010
mov eax, dword [esi]
test eax, eax
je 0x472873
cmp eax, 1
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov cl, byte [esi]
push edi
mov byte [ebx + 0x234], cl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
test dword [esi + 4], 0xfffffff8
jne 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x472906
test eax, 0x400000
jne 0x472906
mov eax, dword [esi]
cmp eax, 2
jbe 0x472967
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x47293b
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x47292a
lea edx, [edi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x472967
mov al, byte [esi + 4]
mov byte [edi + 0x4be], al
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x472987
test eax, 0x400000
jne 0x472987
test al, 1
je 0x4729a4
mov eax, dword [esi]
test eax, eax
je 0x472987
cmp eax, 2
jne 0x4729a4
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov cl, byte [esi + 4]
push edi
mov byte [ebx + 0x224], cl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi]
cmp eax, 1
je 0x4729c1
cmp eax, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x472a04
lea esp, [esp]
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dl, byte [esi + 4]
push edi
mov byte [ebx + 0x4be], dl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x4729e0
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp eax, 0x1200
jg 0x47324c
je 0x4730d8
cmp eax, 0x903
jg 0x4730af
je 0x472f1f
sub eax, 0x901
je 0x472c23
sub eax, 1
jne case.default.0x473267
cmp edi, 4
jb 0x46f010
mov eax, dword [ebx + 0xd0]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test al, 2
jne 0x472ab5
test eax, 0x400000
jne 0x472ab5
mov esi, dword [esi]
cmp esi, 2
jbe 0x4732a8
push esi
mov eax, ebx
call fcn.00466eb0
mov esi, eax
add esp, 4
test esi, esi
jne 0x472aee
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [ebx + 0x210]
test esi, esi
je 0x472ad9
lea ecx, [esi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test esi, esi
je 0x4732a8
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [esi + 0x4b7], 0
jne 0x472b1e
add esi, 0x57c
push esi
mov dword [esp + 0x14], 0x273d
call edi
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x30]
and dl, 0x7f
cmp dl, 8
je 0x472b50
add esi, 0x57c
push esi
mov dword [esp + 0x14], 0x16
call edi
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x4cc], 0
je 0x472b80
add esi, 0x57c
push esi
mov dword [esp + 0x14], 0x2735
call edi
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x1ec], 0
jne 0x472bfc
cmp dword [esi + 0x1e4], 0
jne 0x472bfc
movzx edx, word [esi + 0x47a]
xor eax, eax
test edx, edx
jle 0x472bb2
mov ecx, dword [esi + 0x21c]
cmp dword [ecx], 0
jne 0x472bfc
inc eax
add ecx, 0x30
cmp eax, edx
jl 0x472ba5
push 0
push 0
push 0
push 0
push 1
push 0
push 0
push 0
push esi
call fcn.00491480
add esp, 0x24
push 1
push 0xc
push esi
push ebx
mov dword [esp + 0x20], eax
call fcn.0048dd70
add esp, 0x10
add esi, 0x57c
push esi
call edi
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
add esi, 0x57c
push esi
mov dword [esp + 0x14], 0x10
call edi
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x472c81
test eax, 0x400000
jne 0x472c81
mov eax, dword [esi]
cmp eax, 2
jbe 0x4732a8
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x472cba
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x472ca5
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x4732a8
cmp byte [edi + 0x4b7], 0
jne 0x472cee
add edi, 0x57c
push edi
mov dword [esp + 0x14], 0x273d
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x30]
and cl, 0x7f
cmp cl, 8
jne 0x46f141
movzx edx, word [esi + 6]
movzx eax, dx
mov dword [esp + 0x28], eax
lea eax, [eax + eax + 8]
cmp eax, dword [ebp + 0xc]
ja 0x46f141
movzx eax, word [esi + 4]
mov ecx, 1
test cl, al
je 0x472d5a
cmp byte [edi + 0x4cc], 0
mov dword [esp + 0x20], ecx
je 0x472d5a
mov dword [esp + 0x10], 0x2735
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
test al, 2
jne 0x472d62
mov ecx, dword [esp + 0x1c]
mov eax, 0xc8
cmp dx, ax
jbe 0x472d9e
cmp dword [esp + 0x20], 0
je 0x472da5
add edi, 0x57c
push edi
mov dword [esp + 0x14], 0xc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x20], 0
jne 0x472dad
test ecx, ecx
je 0x46f141
cmp dword [esp + 0x28], 0
mov dword [esp + 0x1c], 0
jle 0x472dfb
lea eax, [esi + 8]
cmp dword [esp + 0x20], 0
je 0x472dd6
mov dx, word [eax]
cmp dx, word [edi + 0x478]
jae 0x46f141
test ecx, ecx
je 0x472dea
mov dx, word [eax]
cmp dx, word [edi + 0x47a]
jae 0x46f141
movzx edx, word [esi + 6]
inc dword [esp + 0x1c]
add eax, 2
cmp dword [esp + 0x1c], edx
jl 0x472dbf
xor edx, edx
cmp ecx, edx
je 0x472e88
movzx eax, word [esi + 6]
mov dword [esp + 0x1c], edx
cmp ax, dx
je 0x472e53
cmp dword [esp + 0x28], edx
jle 0x472e88
lea ecx, [esi + 8]
nop
movzx eax, word [ecx]
mov edx, dword [edi + 0x21c]
lea eax, [eax + eax*2]
shl eax, 4
cmp byte [eax + edx + 0x2f], 2
lea eax, [eax + edx + 0x2f]
jne 0x472e3d
mov byte [eax], 3
mov eax, dword [esp + 0x1c]
movzx edx, word [esi + 6]
inc eax
add ecx, 2
cmp eax, edx
mov dword [esp + 0x1c], eax
jl 0x472e20
jmp 0x472e88
xor eax, eax
cmp ax, word [edi + 0x47a]
jae 0x472e88
xor ecx, ecx
mov edx, dword [edi + 0x21c]
cmp byte [edx + ecx + 0x2f], 2
lea eax, [edx + ecx + 0x2f]
jne 0x472e74
mov byte [eax], 3
movzx eax, word [edi + 0x47a]
inc dword [esp + 0x1c]
add ecx, 0x30
cmp dword [esp + 0x1c], eax
jl 0x472e60
cmp dword [esp + 0x20], 0
je 0x472eb2
mov ecx, dword [esp + 0x20]
movzx eax, word [esi + 6]
push 0
push 0
push 0
push 0
push 0
push ecx
lea edx, [esi + 8]
push edx
push eax
push edi
call fcn.00491480
add esp, 0x24
jmp 0x472ebb
push edi
call fcn.00491030
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x472ef4
push 1
push 0xc
push edi
push ebx
call fcn.0048dd70
add esp, 0x10
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
add edi, 0x57c
push edi
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
xor eax, eax
mov byte [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], eax
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x472f82
test eax, 0x400000
jne 0x472f82
mov eax, dword [esi]
cmp eax, 2
jbe 0x4732a8
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x472fbb
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x472fa6
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x4732a8
cmp byte [edi + 0x4b7], 0
je 0x472cc3
mov edx, dword [edi + 0x30]
and dl, 0x7f
cmp dl, 8
jne 0x46f141
cmp byte [edi + 0x4cc], 0
jne 0x472d2f
movzx eax, word [esi + 6]
test ax, ax
jne 0x472ffc
cmp word [esi + 4], ax
je 0x471306
test ax, ax
je 0x473020
movzx ecx, word [edi + 0x47a]
movzx eax, ax
movzx edx, ax
add ecx, edx
cmp ecx, 0xffff
mov byte [esp + 0x20], 1
mov dword [esp + 0x1c], eax
jg 0x471306
movzx eax, word [esi + 4]
test ax, ax
je 0x473058
or byte [esp + 0x20], 2
movzx ecx, ax
movzx eax, word [edi + 0x478]
mov dword [esp + 0x28], ecx
movzx ecx, cx
add eax, ecx
cmp eax, 0xffff
jg 0x471306
cmp eax, dword [edi + 0x3b4]
jg 0x471306
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push 0
push edx
push eax
push ecx
push 0
push 0
push 0
push 0
push edi
call fcn.00491480
add esp, 0x24
push 1
mov dword [esp + 0x14], eax
push 0xc
push edi
push ebx
call fcn.0048dd70
add esp, 0x10
add edi, 0x57c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp eax, 0x1007
jne case.default.0x473267
mov dword [esp + 0x10], 0x273d
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp dword [0x69f7b4], 0
je case.default.0x473267
cmp edi, 8
jb 0x46f010
cmp dword [esi + 4], 4
ja 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x473143
test eax, 0x400000
jne 0x473143
mov eax, dword [esi]
cmp eax, 2
jbe 0x473186
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x473178
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x473167
lea edx, [edi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x473186
mov al, byte [esi + 4]
mov byte [edi + 0x4d7], al
jmp 0x47308c
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4731a6
test eax, 0x400000
jne 0x4731a6
test al, 1
je 0x4731c3
mov eax, dword [esi]
test eax, eax
je 0x4731a6
cmp eax, 2
jne 0x4731c3
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esi + 4]
push edi
mov dword [ebx + 0x228], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov eax, dword [esi]
cmp eax, 1
je 0x4731e0
cmp eax, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x473224
jmp 0x473200
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dl, byte [esi + 4]
push edi
mov byte [ebx + 0x4d7], dl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x473200
mov eax, dword [esp + 0x18]
push eax
jmp 0x473093
mov dword [esp + 0x10], 0x273a
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp eax, 0x2001
jg 0x473ae0
je 0x473ac7
add eax, 0xffffedfe
cmp eax, 4
ja case.default.0x473267
jmp dword [eax*4 + 0x473de0]
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4732c6
test eax, 0x400000
jne 0x4732c6
mov eax, dword [esi]
cmp eax, 2
jbe 0x4732ff
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x471306
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x4732ea
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x471306
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x473321
test eax, 0x400000
jne 0x473321
test al, 1
je 0x46f010
cmp dword [esi], 0
jne 0x46f010
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 4], 0
jne 0x473358
push edi
mov byte [ebx + 0x22f], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xc8]
mov edx, dword [ebx + 0xcc]
mov ecx, eax
and ecx, 8
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov ecx, 0
je 0x4733af
test ecx, ecx
jne 0x4733af
and eax, 0x10
mov dword [esp + 0x20], eax
mov eax, ecx
je 0x4733af
test eax, eax
jne 0x4733af
push edi
mov byte [ebx + 0x22f], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
push edi
mov dword [esp + 0x14], 0x16
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [esi + 4]
test eax, eax
je 0x4733f7
cmp eax, 1
je 0x4733f7
cmp eax, 2
je 0x4733f7
cmp eax, 3
jne 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x473444
test eax, 0x400000
jne 0x473444
mov eax, dword [esi]
cmp eax, 2
jbe 0x4734df
push eax
mov eax, ebx
call fcn.00466eb0
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x47347d
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
mov dword [esp + 0x1c], edi
test edi, edi
je 0x47346c
lea edx, [edi + 0x57c]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x4734df
mov ebx, dword [esp + 0x1c]
mov edx, esi
mov ecx, dword [edx + 4]
lea esi, [ecx*8]
sub esi, ecx
lea eax, [ebx + 0x248]
lea esi, [esi*8 + 0x6655a0]
mov ecx, 0xe
mov edi, eax
rep movsd dword es:[edi], dword [esi]
cmp dword [eax], 0
mov ecx, dword [edx + 4]
mov dword [ebx + 0x280], ecx
je 0x4734d3
mov esi, dword [ebx + 0x1c4]
test esi, esi
je 0x4734d3
lea ecx, [ecx]
mov edx, dword [ebx + 0x248]
push esi
push ebx
call edx
mov esi, dword [esi]
add esp, 8
test esi, esi
jne 0x4734c0
add ebx, 0x57c
push ebx
jmp 0x473093
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4734ff
test eax, 0x400000
jne 0x4734ff
test al, 1
je 0x47351c
mov eax, dword [esi]
test eax, eax
je 0x4734ff
cmp eax, 2
jne 0x47351c
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 4]
push edi
mov dword [ebx + 0x158], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov esi, dword [esi]
cmp esi, 1
je 0x473539
cmp esi, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x4735d7
jmp 0x473560
lea eax, [ebx + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
lea esi, [eax*8]
sub esi, eax
mov eax, dword [esp + 0x14]
lea edx, [ebx + 0x248]
lea esi, [esi*8 + 0x6655a0]
mov ecx, 0xe
mov edi, edx
rep movsd dword es:[edi], dword [esi]
cmp dword [edx], 0
mov ecx, dword [eax + 4]
mov dword [ebx + 0x280], ecx
je 0x4735c3
mov esi, dword [ebx + 0x1c4]
test esi, esi
je 0x4735c3
nop
mov edx, dword [ebx + 0x248]
push esi
push ebx
call edx
mov esi, dword [esi]
add esp, 8
test esi, esi
jne 0x4735b0
lea eax, [ebx + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x473560
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 0xc
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x473651
test eax, 0x400000
jne 0x473651
mov eax, dword [esi + 4]
cmp eax, 2
jbe 0x47368a
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x4736f8
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x473675
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x4736f8
test byte [ebx + 0xd0], 1
je 0x46f010
cmp dword [esi + 4], 1
jne 0x46f010
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x4736ee
lea esp, [esp]
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0x278]
test eax, eax
je 0x4736e0
push esi
push 1
push ebx
call eax
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x4736c0
mov edx, dword [esp + 0x18]
push edx
jmp 0x473093
mov eax, dword [edi + 0x278]
test eax, eax
jne 0x47372d
add edi, 0x57c
push edi
mov dword [esp + 0x14], 0x273d
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
push esi
push 1
push edi
call eax
add esp, 0xc
add edi, 0x57c
push edi
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [esi + 4]
test eax, eax
je 0x47378a
cmp eax, 1
je 0x47378a
cmp eax, 2
je 0x47378a
cmp eax, 3
je 0x47378a
cmp eax, 4
je 0x47378a
cmp eax, 5
jne 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4737d7
test eax, 0x400000
jne 0x4737d7
mov eax, dword [esi]
cmp eax, 2
jbe 0x473867
push eax
mov eax, ebx
call fcn.00466eb0
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x473810
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
mov dword [esp + 0x1c], edi
test edi, edi
je 0x4737ff
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x473867
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x288]
lea eax, [ebx + 0x30]
push 1
push eax
push ebx
call ecx
mov edx, esi
mov ecx, dword [edx + 4]
lea esi, [ecx + ecx*2]
lea eax, [ebx + 0x284]
shl esi, 4
mov edi, eax
add esi, 0x665238
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov edx, dword [edx + 4]
mov eax, dword [eax]
add esp, 0xc
lea ecx, [ebx + 0x30]
push ecx
push ebx
mov dword [ebx + 0x2b4], edx
call eax
add esp, 8
add ebx, 0x57c
push ebx
jmp 0x473093
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x473887
test eax, 0x400000
jne 0x473887
test al, 1
je 0x4738a4
mov eax, dword [esi]
test eax, eax
je 0x473887
cmp eax, 2
jne 0x4738a4
lea edi, [ebx + 0x268]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esi + 4]
push edi
mov dword [ebx + 0x15c], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebx + 0xd0], 1
je 0x473c8d
mov esi, dword [esi]
cmp esi, 1
je 0x4738c1
cmp esi, 2
jne 0x473c8d
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x47394e
lea eax, [ebx + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebx + 0x288]
lea eax, [ebx + 0x30]
push 1
push eax
push ebx
call edx
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x20]
lea esi, [ecx + ecx*2]
lea eax, [ebx + 0x284]
shl esi, 4
mov edi, eax
add esi, 0x665238
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx + 4]
mov edx, dword [eax]
mov dword [ebx + 0x2b4], ecx
add esp, 0xc
lea ecx, [ebx + 0x30]
push ecx
push ebx
call edx
add esp, 8
lea eax, [ebx + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x4738e0
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 8
jb 0x46f010
mov eax, dword [ebx + 0xd0]
test al, 2
jne 0x4739c3
test eax, 0x400000
jne 0x4739c3
mov eax, dword [esi]
cmp eax, 2
jbe 0x473a3f
push eax
mov eax, ebx
call fcn.00466eb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x4739f8
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x4739e7
lea ecx, [edi + 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebx + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x473a3f
movzx eax, word [esi + 4]
cmp ax, word [edi + 0x47a]
jae 0x473a32
movzx edx, word [esi + 6]
movzx eax, ax
lea eax, [eax + eax*2]
push edx
mov edx, dword [edi + 0x2ac]
shl eax, 4
add eax, dword [edi + 0x21c]
lea ecx, [edi + 0x30]
push eax
push ecx
push edi
call edx
add esp, 0x10
test eax, eax
jge 0x47308c
mov dword [esp + 0x10], 0x16
jmp 0x47308c
test byte [ebx + 0xd0], 1
je 0x46f010
cmp dword [esi], 1
jne 0x46f010
lea eax, [ebx + 0x268]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx + 0x210]
test ebx, ebx
je 0x473abd
lea edi, [ebx + 0x57c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, word [esi + 4]
cmp ax, word [ebx + 0x47a]
jae 0x473aaf
movzx ecx, word [esi + 6]
movzx eax, ax
lea edx, [eax + eax*2]
push ecx
mov ecx, dword [ebx + 0x2ac]
shl edx, 4
add edx, dword [ebx + 0x21c]
lea eax, [ebx + 0x30]
push edx
push eax
push ebx
call ecx
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x473a70
mov edx, dword [esp + 0x18]
push edx
jmp 0x473093
cmp edi, 0x1c
jb 0x46f010
push edx
mov eax, esi
call fcn.0047c030
add esp, 4
jmp 0x473c89
cmp eax, 0x8002
jg 0x473b7e
je 0x473b6a
cmp eax, 0x3005
jg 0x473b5f
je 0x4730ba
sub eax, 0x3001
je 0x473b30
sub eax, 1
jne case.default.0x473267
mov dword [esp + 0x10], 0x273d
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp edi, 4
jb 0x46f010
mov esi, dword [esi]
test esi, esi
ja 0x46f010
mov dword [ebx + 0x2b4], esi
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
cmp eax, 0x8001
jne case.default.0x473267
cmp edi, 0x10
sbb eax, eax
and eax, 0xffffd8d7
add eax, 0x273f
jmp 0x473c89
sub eax, 0x8007
je 0x473c72
sub eax, 1
je 0x473c65
sub eax, 1
jne case.default.0x473267
cmp edi, 0x10
jb 0x46f010
test dword [ebx + 0xd0], 0x200000
je 0x473bdd
lea esi, [ebx + 0x268]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x210]
test edi, edi
je 0x473bd4
lea eax, [edi + 0x57c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x473c18
push 1
add ebx, 0x2b0
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
push 0
push 0
push 0
push esi
lea eax, [esp + 0x2c]
call fcn.00466af0
mov ebx, dword [esp + 0x2c]
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x473c20
push 0xffffffffffffffff
lea ecx, [ebx + 0x2b0]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
test edi, edi
je 0x4732a8
cmp byte [edi + 0x4ce], 1
jne 0x472d2f
lea esi, [edi + 0x3c]
mov byte [edi + 0x4ce], 0
call fcn.00464e60
mov eax, dword [edi + 0x224]
push 0x50000008
push edi
push ebx
mov edx, 2
call fcn.00476bf0
add esp, 0xc
push edi
push ebx
call fcn.00486ac0
add esp, 8
jmp 0x472d37
cmp edi, 0x14
jb 0x46f010
push 1
jmp 0x473c7d
cmp edi, 0x14
jb 0x46f010
push 0
push esi
push ecx
mov edi, ebx
call fcn.0046e350
add esp, 0xc
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret