Function at 0x10070160
Capabilities:
Access peb ldr_data
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10184681
mov eax, dword fs:[0]
push eax
sub esp, 0x130
mov eax, dword [0x101cd7b4]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push esi
push edi
mov eax, dword [0x101cd7b4]
xor eax, esp
push eax
lea eax, [esp + 0x140]
mov dword fs:[0], eax
mov edi, ecx
mov ecx, dword [edi + 0x23c]
xor ebx, ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x8c], 1
call fcn.101350f8
mov byte [esp + 0x23], al
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov eax, dword [edi + 0x1250]
mov ecx, dword [eax + 4]
lea esi, [edi + 0x124c]
push ecx
mov ecx, esi
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], ebx
call fcn.10065920
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
mov dword [esi + 8], ebx
mov dword [eax], eax
mov esi, dword [esi + 4]
mov dword [esi + 8], esi
mov eax, dword [edi + 0xc]
mov esi, dword [eax]
lea ebx, [edi + 8]
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x200]
cmp eax, ecx
mov byte [esp + 0x17], 0
jbe 0x10070246
sub eax, ecx
cmp eax, 0x7530
jae 0x10070246
mov byte [esp + 0x17], 1
test ebx, ebx
mov edx, dword [edi + 0xc]
lea eax, [edi + 8]
mov dword [esp + 0x88], edx
je 0x1007025b
cmp ebx, eax
je 0x10070260
call fcn.1015988d
cmp esi, dword [esp + 0x88]
je 0x1007049b
cmp byte [esp + 0x17], 0
je 0x10070291
test ebx, ebx
jne 0x1007027d
call fcn.1015988d
cmp esi, dword [ebx + 4]
jne 0x10070287
call fcn.1015988d
mov ecx, dword [esi + 0x74]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
jmp 0x100702ac
test ebx, ebx
jne 0x1007029a
call fcn.1015988d
cmp esi, dword [ebx + 4]
jne 0x100702a4
call fcn.1015988d
mov ecx, dword [esi + 0x74]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
test eax, eax
mov dword [esp + 0x18], eax
je 0x1007032f
cmp esi, dword [ebx + 4]
jne 0x100702c0
call fcn.1015988d
lea eax, [esi + 0x10]
push eax
mov ecx, edi
call fcn.10065f20
cmp esi, dword [ebx + 4]
jne 0x100702d5
call fcn.1015988d
lea ecx, [esi + 0xc]
push ecx
lea ecx, [esp + 0x40]
call fcn.1000b950
cmp dword [esp + 0x18], 3
jne 0x10070485
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp esi, dword [ebx + 4]
mov dword [esp + 0x18], eax
jne 0x10070301
call fcn.1015988d
add esi, 0x34
push esi
lea ecx, [edi + 0x70]
call fcn.100663e0
mov edx, dword [esp + 0x18]
add edx, 0x15f90
lea ecx, [esp + 0x50]
mov dword [eax], edx
call fcn.10060ae0
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
jmp 0x10070246
cmp esi, dword [ebx + 4]
jne 0x10070339
call fcn.1015988d
mov ecx, dword [esi + 0x74]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
sub eax, 0
je 0x100703bd
sub eax, 1
jne 0x10070485
cmp esi, dword [ebx + 4]
jne 0x1007035b
call fcn.1015988d
mov ecx, dword [esi + 0x74]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
test eax, eax
jne 0x10070384
add dword [esp + 0x34], 1
lea ecx, [esp + 0x50]
call fcn.10060ae0
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
jmp 0x10070246
cmp esi, dword [ebx + 4]
jne 0x1007038e
call fcn.1015988d
mov esi, dword [esi + 0x74]
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
mov ecx, esi
call edx
cmp eax, 1
jne 0x10070485
add dword [esp + 0x24], eax
lea ecx, [esp + 0x50]
call fcn.10060ae0
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
jmp 0x10070246
cmp esi, dword [ebx + 4]
jne 0x100703c7
call fcn.1015988d
mov ecx, dword [esi + 0x74]
mov eax, dword [ecx]
mov edx, dword [eax + 0x70]
call edx
test al, al
je 0x100703dc
add dword [esp + 0x10], 1
jmp 0x100703e1
add dword [esp + 0x2c], 1
lea ecx, [esp + 0xa4]
call fcn.10032a10
cmp esi, dword [ebx + 4]
mov byte [esp + 0x148], 1
jne 0x100703ff
call fcn.1015988d
mov ecx, dword [esi + 0x74]
mov eax, dword [ecx]
mov eax, dword [eax + 0xa4]
lea edx, [esp + 0xa4]
push edx
call eax
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x118]
add dword [esp + 0x8c], eax
add dword [esp + 0x94], ecx
cmp eax, ecx
jbe 0x10070463
cmp esi, dword [ebx + 4]
jne 0x1007043e
call fcn.1015988d
mov ecx, dword [esi + 0x40]
push ecx
lea edx, [esp + 0x60]
push edx
call fcn.100ecbed
add esp, 8
cmp dword [esp + 0x74], 0x10
jb 0x10070463
mov eax, dword [esp + 0x60]
push eax
call fcn.10159534
add esp, 4
cmp dword [esp + 0xec], 0x10
mov byte [esp + 0x148], 0
jb 0x10070485
mov ecx, dword [esp + 0xd8]
push ecx
call fcn.10159534
add esp, 4
lea ecx, [esp + 0x50]
call fcn.10060ae0
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
jmp 0x10070246
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
movzx esi, byte [edi + 0x1d8]
lea ecx, [edx + eax]
cmp ecx, esi
jle 0x100704bb
mov cl, dl
add cl, al
mov byte [edi + 0x1d8], cl
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
movzx ebx, byte [edi + 0x1d9]
lea esi, [eax + ecx]
cmp esi, ebx
jle 0x100704db
mov bl, al
add bl, cl
mov byte [edi + 0x1d9], bl
mov bl, byte [esp + 0x10]
mov byte [edi + 0x1f0], bl
xor ebx, ebx
mov byte [edi + 0x1f1], dl
mov edx, dword [esp + 0x40]
mov byte [edi + 0x1f2], cl
mov byte [edi + 0x1f3], al
mov dword [esp + 0x10], ebx
test edx, edx
je 0x1007074f
mov eax, dword [esp + 0x44]
sub eax, edx
sar eax, 2
cmp ebx, eax
jae 0x1007074f
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 4]
cmp byte [eax + 0x81], 0
jne 0x10070547
mov esi, dword [edx + ebx*4]
lea esp, [esp]
cmp dword [eax + 0xc], esi
jae 0x1007053a
mov eax, dword [eax + 8]
jmp 0x1007053e
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0x81], 0
je 0x10070530
mov esi, dword [edi + 0xc]
cmp ecx, esi
lea eax, [edi + 8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], eax
je 0x10070567
mov ebx, dword [edx + ebx*4]
cmp ebx, dword [ecx + 0xc]
jb 0x10070567
lea ecx, [esp + 0x2c]
jmp 0x10070573
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x24]
mov esi, dword [ecx]
test esi, esi
mov ebx, dword [ecx + 4]
mov ecx, dword [eax + 4]
mov dword [esp + 0x88], ecx
je 0x1007058a
cmp esi, eax
je 0x10070593
call fcn.1015988d
mov edx, dword [esp + 0x40]
cmp ebx, dword [esp + 0x88]
je 0x100706de
lea ecx, [esp + 0xa4]
call fcn.10032a10
test esi, esi
mov byte [esp + 0x148], 2
jne 0x100705bd
call fcn.1015988d
cmp ebx, dword [esi + 4]
jne 0x100705c7
call fcn.1015988d
mov ecx, dword [ebx + 0x74]
mov edx, dword [ecx]
mov edx, dword [edx + 0x2c]
lea eax, [esp + 0xa4]
push eax
call edx
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x1c]
lea esi, [edi + 0x1240]
push ecx
mov ecx, esi
call fcn.100624e0
mov eax, dword [esp + 0x18]
test eax, eax
mov edx, dword [esi + 4]
mov dword [esp + 0x38], edx
je 0x10070606
cmp eax, esi
je 0x1007060b
call fcn.1015988d
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x38]
je 0x10070669
cmp dword [esp + 0x18], 0
jne 0x10070621
call fcn.1015988d
mov eax, dword [esp + 0x18]
cmp ebx, dword [eax + 4]
jne 0x1007062f
call fcn.1015988d
mov ecx, dword [esp + 0xbc]
add dword [ebx + 0x20], ecx
mov edx, dword [esp + 0xc0]
push 0
adc dword [ebx + 0x24], edx
call fcn.1015972a
mov esi, eax
mov eax, dword [esp + 0x1c]
add esp, 4
cmp ebx, dword [eax + 4]
jne 0x1007065d
call fcn.1015988d
sub esi, dword [esp + 0xa8]
mov dword [ebx + 0x18], esi
jmp 0x100706b8
push 0
call fcn.1015972a
mov ecx, dword [esp + 0xc0]
sub eax, dword [esp + 0xac]
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x70], ecx
add esp, 4
lea ecx, [esp + 0x5c]
mov dword [esp + 0x70], edx
push ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x54]
push edx
mov ecx, esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x70], eax
call fcn.10064940
cmp dword [esp + 0xec], 0x10
mov byte [esp + 0x148], 0
jb 0x100706da
mov eax, dword [esp + 0xd8]
push eax
call fcn.10159534
add esp, 4
mov edx, dword [esp + 0x40]
test edx, edx
je 0x100706f1
mov eax, dword [esp + 0x44]
sub eax, edx
sar eax, 2
cmp dword [esp + 0x10], eax
jb 0x100706fa
call fcn.1015988d
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x10]
lea ecx, [edx + ebx*4]
push ecx
lea ecx, [edi + 8]
call fcn.1006de40
lea esi, [edi + 0xcc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push esi
mov byte [edi + 0xe4], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 0x40]
test edx, edx
je 0x1007073a
mov eax, dword [esp + 0x44]
sub eax, edx
sar eax, 2
cmp ebx, eax
jb 0x10070743
call fcn.1015988d
mov edx, dword [esp + 0x40]
add ebx, 1
mov dword [esp + 0x10], ebx
jmp 0x10070501
cmp byte [esp + 0x23], 0
jne 0x100708e5
mov ecx, dword [edi + 0x240]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
cmp al, 2
je 0x1007078e
movzx ecx, byte [edi + 0x1f0]
cmp ecx, dword [edi + 0x3b4]
jae 0x1007078e
mov edx, dword [edi + 0x1f4]
push 1
push edx
push 2
push 0
mov ecx, edi
call fcn.100606e0
mov ecx, dword [edi + 0x240]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
cmp al, 2
je 0x100708a4
lea esi, [edi + 0xcc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov bl, byte [edi + 0xe4]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test bl, bl
je 0x100708a4
movzx eax, byte [edi + 0x1f1]
movzx ecx, byte [edi + 0x1f0]
add eax, ecx
jne 0x100708a4
mov eax, dword [edi + 0x30]
test eax, eax
je 0x100707fe
mov ecx, dword [edi + 0x34]
sub ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x100708a4
cmp dword [edi + 0xf0], 0
jne 0x100708a4
cmp byte [edi + 0xf5e], 0
mov dword [esp + 0x18], 0xbb8
je 0x1007082d
cmp byte [edi + 0xf28], 0
je 0x1007082d
mov dword [esp + 0x18], 0x1d4c0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ebx, [edi + 0xa8]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 0xc0]
push ebx
mov dword [esp + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esi, dword [esp + 0x10]
cmp esi, dword [esp + 0x18]
jb 0x100708a4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea esi, [edi + 0xa8]
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, edi
call fcn.10061e40
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea esi, [edi + 0xa8]
push esi
mov dword [esp + 0x1c], eax
call ebx
mov edx, dword [esp + 0x18]
push esi
mov dword [edi + 0xc0], edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [edi + 0x240]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
cmp al, 2
je 0x100708e1
mov eax, dword [edi + 0x30]
test eax, eax
je 0x100708d4
mov ecx, dword [edi + 0x34]
sub ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x100708da
cmp dword [edi + 0x44], 0
jbe 0x100708e1
mov ecx, edi
call fcn.1006eaa0
mov edx, dword [esp + 0x40]
cmp byte [edi + 0x1141], 0
je 0x100708fc
test edx, edx
je 0x10070e07
push edx
jmp 0x10070dff
lea esi, [edi + 0x124]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [edi + 0x13c]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x57619f1
imul ebx
sar edx, 8
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp byte [edi + 0x114b], 0
mov ebx, 0x23
mov dword [esp + 0x34], 0x10
mov dword [esp + 0x2c], 7
mov dword [esp + 0x50], 0x28
mov dword [esp + 0x24], 0x19
mov dword [esp + 0x10], 0xe
je 0x100709b5
lea esi, [edi + 0x124]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [edi + 0x13c]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x68db8bad
imul ebx
sar edx, 0xd
mov esi, edx
shr esi, 0x1f
add esi, edx
mov ebx, 0xf
mov dword [esp + 0x34], 0xa
mov dword [esp + 0x2c], 7
mov dword [esp + 0x50], 0x28
mov dword [esp + 0x24], 0x19
mov dword [esp + 0x10], 0xe
mov ecx, dword [edi + 0x394]
push 0
push ecx
call fcn.1010c850
add esp, 8
mov ecx, eax
call fcn.1010bd8e
mov dword [esp + 0x18], eax
mov al, byte [edi + 0x1230]
cmp al, 3
je 0x10070aeb
mov edx, dword [esp + 0x18]
add edx, 0xffffffff
cmp edx, 0x62
ja 0x10070aeb
test al, al
jne 0x10070a3f
lea esi, [edi + 0x124]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [edi + 0x13c]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x68db8bad
imul ebx
sar edx, 0xb
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0xcccccccd
mul dword [esp + 0x18]
shr edx, 2
cmp edx, 4
mov ebx, 4
jb 0x10070a36
mov ebx, edx
lea eax, [ebx + ebx + 0x14]
jmp 0x10070ad7
cmp al, 1
jne 0x10070a8c
lea esi, [edi + 0x124]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [edi + 0x13c]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x68db8bad
imul ebx
sar edx, 0xb
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0xcccccccd
mul dword [esp + 0x18]
shr edx, 2
cmp edx, 4
mov ebx, 4
jb 0x10070a36
mov ebx, edx
lea eax, [ebx + ebx + 0x14]
jmp 0x10070ad7
cmp al, 2
jne 0x10070aeb
lea esi, [edi + 0x124]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [edi + 0x13c]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x68db8bad
imul ebx
sar edx, 0xc
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0xcccccccd
mul dword [esp + 0x18]
shr edx, 3
cmp edx, 4
mov ebx, 4
jb 0x10070ad3
mov ebx, edx
lea eax, [ebx + ebx + 0xa]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
call fcn.1005f420
mov ecx, eax
call fcn.1005a450
test al, al
je 0x10070d15
mov eax, dword [edi + 0x1228]
sub eax, 0
je 0x10070c2c
sub eax, 2
je 0x10070b54
lea eax, [ebx - 5]
cmp eax, esi
mov ecx, eax
jg 0x10070b1e
mov ecx, esi
cmp ebx, ecx
jge 0x10070b39
mov eax, ebx
mov dword [edi + 0x3b4], eax
mov eax, dword [esp + 0x50]
mov dword [edi + 0x11b4], eax
jmp 0x10070d69
cmp eax, esi
jg 0x10070b3f
mov eax, esi
mov dword [edi + 0x3b4], eax
mov eax, dword [esp + 0x50]
mov dword [edi + 0x11b4], eax
jmp 0x10070d69
call fcn.1005f420
mov ecx, eax
call fcn.1005a4b0
test al, al
mov eax, dword [edi + 0x3b4]
mov ecx, eax
jne 0x10070bd5
cmp eax, esi
ja 0x10070b72
mov ecx, esi
mov edx, dword [edi + 0x122c]
cmp ecx, edx
jbe 0x10070b88
cmp eax, esi
jbe 0x10070b84
mov ecx, eax
jmp 0x10070b8a
mov ecx, esi
jmp 0x10070b8a
mov ecx, edx
mov ebx, dword [esp + 0x34]
cmp ebx, ecx
jae 0x10070ba3
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov dword [edi + 0x11b4], ecx
jmp 0x10070d63
cmp eax, esi
mov ecx, eax
ja 0x10070bab
mov ecx, esi
cmp ecx, edx
jbe 0x10070bc4
cmp eax, esi
ja 0x10070bc6
mov ecx, dword [esp + 0x24]
mov eax, esi
mov dword [edi + 0x11b4], ecx
jmp 0x10070d63
mov eax, edx
mov ecx, dword [esp + 0x24]
mov dword [edi + 0x11b4], ecx
jmp 0x10070d63
cmp eax, esi
ja 0x10070bdb
mov ecx, esi
mov edx, dword [edi + 0x122c]
cmp ecx, edx
jbe 0x10070bf1
cmp eax, esi
jbe 0x10070bed
mov ecx, eax
jmp 0x10070bf3
mov ecx, esi
jmp 0x10070bf3
mov ecx, edx
mov ebx, dword [esp + 0x2c]
cmp ebx, ecx
jae 0x10070c06
mov edx, dword [esp + 0x10]
mov eax, ebx
jmp 0x10070d5d
cmp eax, esi
mov ecx, eax
ja 0x10070c0e
mov ecx, esi
cmp ecx, edx
jbe 0x10070c21
cmp eax, esi
ja 0x10070c23
mov edx, dword [esp + 0x10]
mov eax, esi
jmp 0x10070d5d
mov eax, edx
mov edx, dword [esp + 0x10]
jmp 0x10070d5d
call fcn.1005f420
mov ecx, eax
call fcn.1005a4b0
test al, al
mov eax, dword [edi + 0x3b4]
mov ecx, eax
jne 0x10070cbb
cmp eax, esi
ja 0x10070c4a
mov ecx, esi
mov edx, dword [edi + 0x122c]
cmp ecx, edx
jbe 0x10070c60
cmp eax, esi
jbe 0x10070c5c
mov ecx, eax
jmp 0x10070c62
mov ecx, esi
jmp 0x10070c62
mov ecx, edx
cmp ebx, ecx
jae 0x10070c7d
mov eax, ebx
mov dword [edi + 0x3b4], eax
mov eax, dword [esp + 0x50]
mov dword [edi + 0x11b4], eax
jmp 0x10070d69
cmp eax, esi
mov ecx, eax
ja 0x10070c85
mov ecx, esi
cmp ecx, edx
jbe 0x10070ca4
cmp eax, esi
ja 0x10070ca6
mov eax, esi
mov dword [edi + 0x3b4], eax
mov eax, dword [esp + 0x50]
mov dword [edi + 0x11b4], eax
jmp 0x10070d69
mov eax, edx
mov dword [edi + 0x3b4], eax
mov eax, dword [esp + 0x50]
mov dword [edi + 0x11b4], eax
jmp 0x10070d69
cmp eax, esi
ja 0x10070cc1
mov ecx, esi
mov edx, dword [edi + 0x122c]
cmp ecx, edx
jbe 0x10070cd7
cmp eax, esi
jbe 0x10070cd3
mov ecx, eax
jmp 0x10070cd9
mov ecx, esi
jmp 0x10070cd9
mov ecx, edx
mov ebx, dword [esp + 0x34]
cmp ebx, ecx
jae 0x10070cef
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov dword [edi + 0x11b4], ecx
jmp 0x10070d63
cmp eax, esi
mov ecx, eax
ja 0x10070cf7
mov ecx, esi
cmp ecx, edx
jbe 0x10070bc4
cmp eax, esi
ja 0x10070bc6
mov ecx, dword [esp + 0x24]
mov eax, esi
mov dword [edi + 0x11b4], ecx
jmp 0x10070d63
mov eax, dword [edi + 0x3b4]
cmp eax, esi
mov ecx, eax
ja 0x10070d23
mov ecx, esi
mov edx, dword [edi + 0x122c]
cmp ecx, edx
jbe 0x10070d39
cmp eax, esi
jbe 0x10070d35
mov ecx, eax
jmp 0x10070d3b
mov ecx, esi
jmp 0x10070d3b
mov ecx, edx
cmp ebx, ecx
jae 0x10070d43
mov eax, ebx
jmp 0x10070d59
cmp eax, esi
mov ecx, eax
ja 0x10070d4b
mov ecx, esi
cmp ecx, edx
jbe 0x10070d57
cmp eax, esi
ja 0x10070d59
mov eax, esi
jmp 0x10070d59
mov eax, edx
mov edx, dword [esp + 0x50]
mov dword [edi + 0x11b4], edx
mov dword [edi + 0x3b4], eax
mov eax, dword [edi + 0x3b4]
cmp eax, dword [edi + 0x114c]
jbe 0x10070d7d
mov dword [edi + 0x114c], eax
mov eax, dword [esp + 0x94]
cmp dword [esp + 0x8c], eax
jbe 0x10070df6
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x60], 0x1019a840
mov dword [esp + 0x64], 0x10199604
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea esi, [edi + 0x124]
push esi
call ebx
mov edi, dword [edi + 0x13c]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call esi
lea edx, [esp + 0x64]
push edx
call ebx
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x80], edi
call esi
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x60], 0x1019a840
mov dword [esp + 0x64], 0x10199604
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x10070e07
push eax
call fcn.10159534
add esp, 4
mov ecx, dword [esp + 0x140]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.10159cce
mov esp, ebp
pop ebp
ret