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

Disassembly:
push 0xffffffffffffffff
push 0x10185012
mov eax, dword fs:[0]
push eax
sub esp, 0x160
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101c6444]
xor eax, esp
push eax
lea eax, [esp + 0x174]
mov dword fs:[0], eax
mov esi, ecx
mov al, byte [esi + 0x2248]
test al, al
jne 0x1009caef
mov cl, byte [esi + 0x1e18]
test cl, cl
jne 0x1009b5b3
mov ecx, esi
call fcn.1008b6d0
test al, al
je 0x1009b5b3
lea edi, [esi + 0x1dd8]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov bl, byte [esi + 0x1df0]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test bl, bl
jne 0x1009b5a7
lea edx, [esi + 0x1d28]
push edx
lea ecx, [esp + 0x84]
call fcn.100035d0
mov ecx, dword [esi + 0x2730]
lea eax, [esi + 0x30d4]
push eax
mov dword [esp + 0x180], 0
call fcn.10134600
lea ecx, [esp + 0x80]
mov dword [esp + 0x17c], 0xffffffff
call fcn.100035f0
mov ecx, esi
call fcn.1008dfa0
jmp 0x1009caef
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
lea ecx, [esi + 0x1d75]
push ecx
mov dword [esp + 0x180], 1
call fcn.100f2827
mov ecx, eax
add esp, 4
or ecx, edx
jne 0x1009b60d
mov eax, dword [esi + 0x250f]
mov edx, dword [esi + 0x2513]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
cmp ebp, eax
mov dword [esp + 0x28], edx
mov ebx, eax
jbe 0x1009b630
call fcn.1015828d
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
cmp ebp, eax
lea edi, [esp + 0x44]
jbe 0x1009b63d
call fcn.1015828d
push ebx
push edi
lea eax, [esp + 0x4c]
push ebp
push eax
lea edx, [esp + 0x148]
push edx
mov ecx, eax
call fcn.10093570
xor edi, edi
push edi
call fcn.1015812a
add esp, 4
lea ecx, [esp + 0x74]
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
call fcn.10037180
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edi
mov ecx, dword [esi + 0xc]
cmp ecx, edi
mov byte [esp + 0x17c], 2
je 0x1009bbc7
lea eax, [esp + 0x74]
push eax
lea edx, [esp + 0x28]
push edx
call fcn.10073330
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x4c]
mov edi, eax
jbe 0x1009b6bb
call fcn.1015828d
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
mov dword [esp + 0x20], ecx
jbe 0x1009b6cc
call fcn.1015828d
mov ebx, dword [esp + 0x19c]
cmp edi, dword [esp + 0x20]
je 0x1009bbc7
cmp edi, dword [esp + 0x4c]
jb 0x1009b6e8
call fcn.1015828d
cmp dword [edi], 0
jne 0x1009b924
sub esp, 0x1c
mov eax, esp
mov dword [esp + 0x84], esp
push eax
mov ecx, esi
call fcn.1008d1e0
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x5c]
sub esp, 0x1c
mov edx, esp
mov dword [esp + 0x90], esp
lea ecx, [esi + 8]
push edx
lea edx, [esp + 0x188]
push edx
mov byte [esp + 0x1bc], 3
call eax
mov ecx, eax
call fcn.10014320
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009b89c
call fcn.1015828d
mov ecx, dword [edi + 0x80]
mov edx, dword [edi + 0x7c]
mov eax, dword [edi + 0x78]
push ecx
mov ecx, dword [edi + 0x74]
push edx
mov edx, dword [edi + 0x70]
push eax
mov eax, dword [edi + 0x6c]
push ecx
movzx ecx, byte [edi + 0x8c]
push edx
mov edx, dword [edi + 0x88]
push eax
movzx eax, byte [edi + 0x64]
push ecx
movzx ecx, byte [edi + 0x63]
push edx
movzx edx, byte [edi + 0x62]
cmp dword [edi], 0
push eax
movzx eax, byte [edi + 0x61]
push ecx
movzx ecx, byte [edi + 0x60]
push edx
movzx edx, word [edi + 0x24]
push eax
mov eax, dword [edi + 0x28]
push ecx
movzx ecx, byte [edi + 0x2c]
push edx
movzx edx, word [edi + 0x14]
push eax
movzx eax, word [edi + 0xc]
push ecx
mov ecx, dword [edi + 8]
push edx
mov edx, dword [edi + 0x10]
push eax
push ecx
movzx ecx, byte [edi + 0xe]
sete al
push edx
mov byte [esp + 0x204], 2
push eax
push ecx
mov ecx, dword [esp + 0x220]
call fcn.10046040
jmp 0x1009bbb1
cmp edi, dword [esp + 0x4c]
jb 0x1009b92f
call fcn.1015828d
cmp dword [edi], 1
jne 0x1009bbb1
sub esp, 0x1c
mov edx, esp
mov dword [esp + 0x74], esp
push edx
mov ecx, esi
call fcn.1008d1e0
mov edx, dword [esi + 8]
mov edx, dword [edx + 0x5c]
sub esp, 0x1c
mov eax, esp
mov dword [esp + 0xa0], esp
lea ecx, [esi + 8]
push eax
lea eax, [esp + 0x19c]
push eax
mov byte [esp + 0x1bc], 4
call edx
mov ecx, eax
call fcn.10014320
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
cmp edi, dword [esp + 0x84]
jb 0x1009bae0
call fcn.1015828d
mov eax, dword [edi + 0x80]
mov ecx, dword [edi + 0x7c]
mov edx, dword [edi + 0x78]
push eax
mov eax, dword [edi + 0x74]
push ecx
mov ecx, dword [edi + 0x70]
push edx
mov edx, dword [edi + 0x6c]
push eax
movzx eax, byte [edi + 0x8c]
push ecx
mov ecx, dword [edi + 0x88]
push edx
movzx edx, byte [edi + 0x64]
push eax
movzx eax, byte [edi + 0x63]
push ecx
movzx ecx, byte [edi + 0x62]
cmp dword [edi], 0
push edx
movzx edx, byte [edi + 0x61]
push eax
movzx eax, byte [edi + 0x60]
push ecx
movzx ecx, word [edi + 0x24]
push edx
mov edx, dword [edi + 0x28]
push eax
movzx eax, byte [edi + 0x2c]
push ecx
movzx ecx, word [edi + 0x14]
push edx
movzx edx, word [edi + 0xc]
push eax
mov eax, dword [edi + 8]
push ecx
mov ecx, dword [edi + 0x10]
push edx
sete dl
lea ebp, [edi + 8]
push eax
movzx eax, byte [edi + 0xe]
push ecx
mov ecx, dword [esp + 0x220]
push edx
push eax
mov byte [esp + 0x20c], 2
call fcn.10046040
cmp edi, dword [esp + 0x4c]
jb 0x1009bb71
call fcn.1015828d
mov ecx, dword [edi + 0x28]
add dword [ebx], ecx
adc dword [ebx + 4], 0
cmp edi, dword [esp + 0x4c]
jb 0x1009bb85
call fcn.1015828d
mov edx, dword [edi + 0x28]
add dword [esp + 0x18], edx
adc dword [esp + 0x1c], 0
cmp edi, dword [esp + 0x4c]
jb 0x1009bb9c
call fcn.1015828d
mov ecx, dword [esp + 0x1a0]
push ebp
lea eax, [esp + 0x144]
push eax
call fcn.1000abf0
cmp edi, dword [esp + 0x4c]
jb 0x1009bbbc
call fcn.1015828d
add edi, 0x90
jmp 0x1009b6d3
mov ecx, dword [esp + 0x34]
xor edi, edi
cmp dword [esi + 0x272c], edi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
lea ebx, [edi + 0xf]
je 0x1009bed1
lea edi, [esi + 0x21c0]
push edi
mov byte [esp + 0x1b], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dl, byte [esi + 0x21d8]
push edi
mov byte [esp + 0x24], dl
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [esi + 0x272c]
lea edx, [esp + 0x2c]
push edx
call fcn.1003f4c0
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x4c]
mov edi, eax
jbe 0x1009bc3a
call fcn.1015828d
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
mov dword [esp + 0x20], ecx
jbe 0x1009bc4b
call fcn.1015828d
mov ebp, dword [esp + 0x194]
cmp edi, dword [esp + 0x20]
je 0x1009bd3a
cmp edi, dword [esp + 0x4c]
jb 0x1009bc67
call fcn.1015828d
cmp dword [edi], 4
jne 0x1009bd24
cmp edi, dword [esp + 0x4c]
jb 0x1009bc7b
call fcn.1015828d
cmp edi, dword [esp + 0x4c]
movzx eax, byte [edi + 0x4c]
push eax
jb 0x1009bc8b
call fcn.1015828d
cmp edi, dword [esp + 0x50]
movzx ecx, byte [edi + 0x5a]
push ecx
jb 0x1009bc9b
call fcn.1015828d
cmp edi, dword [esp + 0x54]
movzx edx, word [edi + 0x58]
push edx
jb 0x1009bcab
call fcn.1015828d
cmp edi, dword [esp + 0x58]
mov eax, dword [edi + 0x20]
push eax
jb 0x1009bcba
call fcn.1015828d
cmp edi, dword [esp + 0x5c]
mov ecx, dword [edi + 8]
push ecx
jb 0x1009bcc9
call fcn.1015828d
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x88], esp
push 0xffffffffffffffff
lea eax, [edi + 0x30]
push 0
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], 0
push eax
mov byte [ecx + 4], 0
call fcn.10001a10
mov ecx, ebp
call fcn.10046280
cmp edi, dword [esp + 0x4c]
jb 0x1009bd02
call fcn.1015828d
cmp byte [edi + 0x4c], 0
je 0x1009bd24
cmp edi, dword [esp + 0x4c]
mov byte [esp + 0x17], 1
jb 0x1009bd18
call fcn.1015828d
mov edx, dword [edi + 0x28]
add dword [esp + 0x60], edx
adc dword [esp + 0x64], 0
cmp edi, dword [esp + 0x4c]
jb 0x1009bd2f
call fcn.1015828d
add edi, 0x90
jmp 0x1009bc52
mov eax, dword [esi + 0x263c]
xor edi, edi
push edi
push edi
shr eax, 0xa
push eax
push edi
push edi
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x88], esp
push 0x26
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push str.zGetUrl:________________1ACC_Max_Speed
mov byte [ecx + 4], 0
call fcn.10001b80
mov ecx, ebp
call fcn.10046280
mov ecx, dword [esi + 0x2640]
push edi
push edi
shr ecx, 0xa
push ecx
push edi
push edi
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x88], esp
push 0x26
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push str.zGetUrl:________________2ACC_Min_Speed
mov byte [ecx + 4], 0
call fcn.10001b80
mov ecx, ebp
call fcn.10046280
mov edx, dword [esi + 0x2644]
push edi
push edi
shr edx, 0xa
push edx
push edi
push edi
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x88], esp
push 0x27
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], edi
push str.zGetUrl:________________3ACC_Drop_Speed
mov byte [ecx + 4], 0
call fcn.10001b80
mov ecx, ebp
call fcn.10046280
mov ebp, dword [esi + 0x3370]
cmp ebp, dword [esi + 0x3374]
lea edi, [esi + 0x336c]
jbe 0x1009be00
call fcn.1015828d
lea ebx, [ebx]
mov ebx, dword [edi + 8]
cmp dword [edi + 4], ebx
jbe 0x1009be0d
call fcn.1015828d
cmp edi, edi
je 0x1009be16
call fcn.1015828d
cmp ebp, ebx
je 0x1009be7d
cmp ebp, dword [edi + 8]
jb 0x1009be24
call fcn.1015828d
cmp ebp, dword [edi + 8]
movzx eax, byte [ebp + 0x1c]
push eax
push 0
jb 0x1009be35
call fcn.1015828d
cmp ebp, dword [edi + 8]
mov ecx, dword [ebp + 0x20]
push ecx
push 0
push 0
jb 0x1009be47
call fcn.1015828d
sub esp, 0x1c
mov edx, esp
mov dword [esp + 0x88], esp
push ebp
push str.zGetUrl:
push edx
call fcn.1002d040
mov ecx, dword [esp + 0x1d0]
add esp, 0xc
call fcn.10046280
cmp ebp, dword [edi + 8]
jb 0x1009be78
call fcn.1015828d
add ebp, 0x64
jmp 0x1009be00
cmp byte [esp + 0x17], 0
je 0x1009beb9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [esi + 0x3258], 0
je 0x1009beaa
mov edx, dword [esi + 0x3254]
mov ecx, eax
sub ecx, edx
cmp eax, edx
jae 0x1009bea4
sub ecx, 1
add dword [esi + 0x3250], ecx
mov byte [esi + 0x3258], 1
mov dword [esi + 0x3254], eax
jmp 0x1009beca
mov dword [esi + 0x3254], 0
mov byte [esi + 0x3258], 0
xor edi, edi
mov ebx, 0xf
push 0xffffffffffffffff
lea eax, [esi + 0x242a]
push edi
push eax
lea ecx, [esp + 0xcc]
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe0], edi
mov byte [esp + 0xd0], 0
call fcn.10001a10
cmp dword [esp + 0xd8], 0x10
jb 0x1009bf17
mov eax, dword [esp + 0xc4]
push eax
call fcn.10157f3b
add esp, 4
cmp dword [esp + 0x38], edi
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xd4], edi
mov byte [esp + 0xc4], 0
jne 0x1009bf3f
add dword [esi + 0x2fd0], 1
jmp 0x1009bfc1
cmp byte [esi + 0x2560], 1
jne 0x1009bfb0
lea ecx, [esi + 0x3350]
push ecx
lea edx, [esp + 0x70]
push edx
mov ecx, 0x101c7d24
call fcn.1008ceb0
mov ebp, dword [esp + 0x6c]
test ebp, ebp
mov ebx, dword [0x101c7d28]
je 0x1009bf74
cmp ebp, 0x101c7d24
je 0x1009bf79
call fcn.1015828d
mov edi, dword [esp + 0x70]
cmp edi, ebx
je 0x1009bfb0
test ebp, ebp
jne 0x1009bf8a
call fcn.1015828d
cmp edi, dword [ebp + 4]
jne 0x1009bf94
call fcn.1015828d
add dword [edi + 0x58], 1
cmp edi, dword [ebp + 4]
jne 0x1009bfa2
call fcn.1015828d
mov eax, dword [esp + 0x18]
add dword [edi + 0x60], eax
mov ecx, dword [esp + 0x1c]
adc dword [edi + 0x64], ecx
mov dword [esi + 0x2fd0], 0
mov ebx, 0xf
xor edi, edi
cmp dword [esi + 0x1d70], edi
jne 0x1009c075
mov ecx, dword [esi + 0x2730]
call fcn.1013439f
mov ecx, dword [esi + 0x2730]
mov ebx, eax
mov dword [esp + 0x5c], edx
call fcn.1013424b
mov ecx, dword [esi + 0x2730]
mov edi, eax
mov ebp, edx
call fcn.1013434a
mov dword [esp + 0x1c], edx
mov ecx, edi
sub ecx, dword [esi + 0x3100]
mov edx, ebp
sbb edx, dword [esi + 0x3104]
add ecx, ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x5c]
adc edx, eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x18]
sub edx, dword [esi + 0x3108]
mov dword [esi + 0x3110], ebx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x1c]
sbb edx, dword [esi + 0x310c]
add edi, ebx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x18]
adc ebp, eax
mov dword [esi + 0x3108], edx
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x3100], edi
mov dword [esp + 0x34], ecx
mov dword [esi + 0x3104], ebp
mov dword [esi + 0x310c], edx
mov dword [esi + 0x3114], eax
mov ebx, 0xf
xor edi, edi
jmp 0x1009c079
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x68]
cmp ecx, ebp
ja 0x1009c083
mov ebp, ecx
push 0xffffffffffffffff
push edi
lea eax, [esi + 0x242a]
push eax
lea ecx, [esp + 0x94]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa8], edi
mov byte [esp + 0x98], 0
call fcn.10001a10
cmp dword [esp + 0xa0], 0x10
jb 0x1009c0c9
mov eax, dword [esp + 0x8c]
push eax
call fcn.10157f3b
add esp, 4
cmp byte [esi + 0x33a9], 1
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x9c], edi
mov byte [esp + 0x8c], 0
je 0x1009c0fe
cmp byte [esi + 0x255f], 1
je 0x1009c0fe
mov ecx, dword [esp + 0x34]
push ecx
push ebp
mov ecx, esi
call fcn.1008b7a0
mov eax, dword [esp + 0x34]
cmp eax, dword [esi + 0x325c]
jbe 0x1009c110
mov dword [esi + 0x325c], eax
cmp dword [esi + 0x3310], 2
jne 0x1009c124
cmp eax, 0xc00
jge 0x1009c1d5
mov ecx, dword [esi + 0x2648]
cmp ecx, 1
jne 0x1009c141
mov edx, eax
sub edx, dword [esp + 0x60]
cmp edx, dword [esi + 0x2644]
ja 0x1009c147
cmp ecx, ecx
je 0x1009c164
sub eax, dword [esp + 0x60]
je 0x1009c164
cmp ecx, 1
jne 0x1009c15c
mov eax, dword [esi + 0x2338]
cmp eax, 2
jl 0x1009c15c
add eax, 0xfffffffe
jmp 0x1009c1cf
mov dword [esi + 0x2338], edi
jmp 0x1009c1d5
lea edi, [esi + 0x2344]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov bl, byte [esi + 0x235c]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test bl, bl
je 0x1009c1d5
mov eax, dword [esi + 0x2648]
cmp eax, 1
mov ecx, dword [esp + 0x34]
jne 0x1009c1a4
mov edx, ecx
sub edx, dword [esp + 0x60]
cmp edx, dword [esi + 0x2640]
jb 0x1009c1b0
cmp eax, 1
je 0x1009c1d5
sub ecx, dword [esp + 0x60]
cmp ecx, 0x400
jae 0x1009c1d5
add dword [esi + 0x2338], 1
mov ecx, dword [esi + 0x2338]
xor edx, edx
cmp eax, 1
setne dl
lea edx, [edx + edx + 6]
mov eax, edx
cmp ecx, eax
jle 0x1009c1d5
mov dword [esi + 0x2338], eax
lea eax, [esp + 0x100]
push eax
mov dword [esp + 0xfc], 0x10198870
mov dword [esp + 0x100], 0x101975e4
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ebp, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [esi + 0x2344]
push edi
call ebp
mov bl, byte [esi + 0x235c]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call edi
lea ecx, [esp + 0x100]
push ecx
call ebp
lea edx, [esp + 0x100]
push edx
mov byte [esp + 0x11c], bl
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x242a]
push eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x188], 5
mov dword [esp + 0xc8], 0xf
mov dword [esp + 0xc4], 0
mov byte [esp + 0xb4], 0
call fcn.10001a10
cmp dword [esp + 0xbc], 0x10
jb 0x1009c289
mov eax, dword [esp + 0xa8]
push eax
call fcn.10157f3b
add esp, 4
lea ecx, [esp + 0x100]
push ecx
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], 0
mov byte [esp + 0xac], 0
mov byte [esp + 0x180], 2
mov dword [esp + 0xfc], 0x10198870
mov dword [esp + 0x100], 0x101975e4
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
cmp dword [esp + 0x34], 0
mov dword [esp + 0xfc], 0x101975e0
je 0x1009c2f5
push 0
call fcn.1015812a
add esp, 4
mov dword [esi + 0x33b8], eax
cmp byte [esi + 0x3020], 0
mov eax, dword [esi + 0x263c]
je 0x1009c314
mov ecx, dword [esi + 0x272c]
test ecx, ecx
je 0x1009c314
push eax
call fcn.10038670
cmp dword [esp + 0x34], 0
jle 0x1009c388
lea edi, [esi + 0x2be0]
push edi
call ebp
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
mov dword [esi + 0x2bf8], 0
call ebx
lea edi, [esi + 0x2c04]
push edi
call ebp
push edi
mov word [esi + 0x2c1c], 0
call ebx
lea edi, [esi + 0x2c28]
push edi
call ebp
push edi
mov word [esi + 0x2c40], 0
call ebx
lea edi, [esi + 0x2c4c]
push edi
call ebp
push edi
mov word [esi + 0x2c64], 0
call ebx
lea edi, [esi + 0x2bbc]
push edi
call ebp
mov byte [esi + 0x2bd4], 0
jmp 0x1009c3db
lea edi, [esi + 0x2bbc]
push edi
call ebp
mov dl, byte [esi + 0x2bd4]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
mov byte [esp + 0x1b], dl
call ebx
cmp byte [esp + 0x17], 0
jne 0x1009c3de
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea edi, [esi + 0x2be0]
push edi
mov dword [esp + 0x6c], eax
call ebp
mov eax, dword [esp + 0x68]
push edi
mov dword [esi + 0x2bf8], eax
call ebx
lea edi, [esi + 0x2bbc]
push edi
call ebp
mov byte [esi + 0x2bd4], 1
push edi
call ebx
cmp byte [esi + 0x3021], 0
jne 0x1009c40d
mov ecx, dword [esi + 0x2730]
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
push 0
call eax
test al, al
jne 0x1009c40d
mov ecx, dword [esi + 0x2730]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov byte [esi + 0x3021], al
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add dword [esi + 0x30f8], 1
mov edi, dword [esp + 0x188]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x1009c4e5
or eax, ecx
je 0x1009c4ec
cmp dword [esi + 0x1d70], 0
jne 0x1009c4ec
mov ecx, esi
call fcn.1008b410
push 0
push 0
mov ecx, esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
call fcn.1008b620
mov dword [edi + 0xc], eax
cmp byte [esi + 0xba7], 4
jne 0x1009c4ec
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.1008b4e0
push 0
push 0x3e8
push edx
push eax
call fcn.10159ae0
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x28]
push ecx
push edx
push eax
call fcn.1015a9c0
xor ecx, ecx
cmp edx, ecx
jg 0x1009c4d6
jl 0x1009c4a7
cmp eax, dword [esp + 0x18]
jae 0x1009c4d6
mov ecx, esi
call fcn.1008b4e0
push 0
push 0x3e8
push edx
push eax
call fcn.10159ae0
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x28]
push ecx
push edx
push eax
call fcn.1015a9c0
mov dword [esp + 0x1c], edx
mov dword [edi + 0x18], eax
jmp 0x1009c4ec
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov dword [edi + 0x18], eax
jmp 0x1009c4ec
mov dword [edi + 0xc], 0
mov dl, byte [esi + 0x1e18]
test dl, dl
je 0x1009c503
mov dword [esp + 0x34], 0
jmp 0x1009c74a
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ebp, [esi + 0x22c4]
push ebp
mov dword [esp + 0x24], 0
call ebx
mov eax, dword [esi + 0x22e4]
mov edi, dword [esi + 0x22e0]
push ebp
mov dword [esp + 0x20], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or edi, dword [esp + 0x1c]
je 0x1009c627
lea edi, [esi + 0x22f0]
push edi
call ebx
mov ebp, dword [esi + 0x2308]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [esp + 0x54], ebp
jle 0x1009c627
lea edi, [esi + 0x22f0]
push edi
call ebx
mov ebp, dword [esi + 0x2308]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [esp + 0x54]
sub edi, ebp
cmp edi, 1
jge 0x1009c581
mov edi, 1
lea ebp, [esi + 0x22c4]
push ebp
call ebx
mov ecx, dword [esi + 0x22e0]
mov edx, dword [esi + 0x22e4]
push ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esi + 0x3028]
mov ebp, dword [esp + 0x30]
sbb ebp, dword [esi + 0x302c]
sub ecx, dword [esp + 0x18]
mov eax, edi
sbb ebp, dword [esp + 0x1c]
cdq
push edx
push eax
push ebp
push ecx
call fcn.1015a9c0
test eax, eax
mov dword [esp + 0x20], eax
jge 0x1009c5dd
mov dword [esp + 0x20], 0
lea edi, [esi + 0x22c4]
push edi
call ebx
mov edx, dword [esi + 0x22e0]
mov ebp, dword [esi + 0x22e4]
push edi
mov dword [esp + 0x1c], edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x30]
cmp eax, ebp
mov eax, dword [esp + 0x34]
jl 0x1009c61b
jg 0x1009c615
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [esp + 0x18]
jbe 0x1009c61b
cmp dword [esp + 0x20], eax
jl 0x1009c61f
test eax, eax
jne 0x1009c627
mov edx, dword [esp + 0x20]
mov dword [esp + 0x34], edx
lea edi, [esi + 0x22c4]
push edi
call ebx
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0xffffffffffffffff
xor ebp, ebp
push ebp
lea eax, [esi + 0x242a]
mov edi, 0xf
push eax
lea ecx, [esp + 0xe8]
mov dword [esp + 0x100], edi
mov dword [esp + 0xfc], ebp
mov byte [esp + 0xec], 0
call fcn.10001a10
cmp dword [esp + 0xf4], 0x10
jb 0x1009c684
mov eax, dword [esp + 0xe0]
push eax
call fcn.10157f3b
add esp, 4
cmp byte [esi + 0x3021], 0
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf0], ebp
mov byte [esp + 0xe0], 0
je 0x1009c6ab
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x34], ebp
jne 0x1009c6ba
add dword [esi + 0x2330], 1
jmp 0x1009c6c0
mov dword [esi + 0x2330], ebp
cmp dword [esi + 0x2330], 6
jge 0x1009c719
lea edi, [esi + 0x2314]
push edi
call ebx
mov ebp, dword [esi + 0x232c]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebp, ebp
je 0x1009c71d
lea edi, [esi + 0x2314]
push edi
call ebx
mov ebp, dword [esi + 0x232c]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x34]
lea edx, [eax + eax*2]
lea ecx, [edx + ebp*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x34], eax
jmp 0x1009c71d
mov dword [esp + 0x34], ebp
lea edi, [esi + 0x2314]
push edi
call ebx
mov ecx, dword [esp + 0x34]
push edi
mov dword [esi + 0x232c], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebp, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [esp + 0x188]
lea eax, [esi + 0x22f0]
push eax
call ebp
mov edx, dword [esp + 0x54]
lea eax, [esi + 0x22f0]
push eax
mov dword [esi + 0x2308], edx
call ebx
lea eax, [esi + 0x22c4]
push eax
call ebp
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [esi + 0x22e0], eax
lea eax, [esi + 0x22c4]
push eax
mov dword [esi + 0x22e4], ecx
call ebx
xor eax, eax
cmp dword [esp + 0x34], eax
mov dword [esi + 0x3028], eax
mov dword [esi + 0x302c], eax
jle 0x1009c7ab
lea ecx, [esi + 0x2690]
call fcn.1002bd40
mov dl, byte [esi + 0x273c]
test dl, dl
jne 0x1009c7c3
cmp dword [esp + 0x34], 0
jle 0x1009c7c3
mov byte [esi + 0x273c], 1
mov eax, dword [esi + 0x2426]
mov edx, dword [esp + 0x184]
mov dword [edi], eax
cmp byte [esi + 0x2420], 2
setne cl
mov byte [edx], cl
mov al, byte [esi + 0x26d4]
test al, al
je 0x1009ca9d
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x40]
push 0xffffffffffffffff
mov dword [edi + 0x10], eax
push 0
lea eax, [esi + 0x242a]
mov dword [edi + 0x14], ecx
push eax
lea ecx, [esp + 0x128]
mov dword [edi + 8], edx
mov dword [esp + 0x140], 0xf
mov dword [esp + 0x13c], 0
mov byte [esp + 0x12c], 0
call fcn.10001a10
cmp dword [esp + 0x134], 0x10
jb 0x1009c857
mov edx, dword [esp + 0x120]
push edx
call fcn.10157f3b
add esp, 4
mov eax, dword [esi + 0xc]
test eax, eax
je 0x1009c957
mov eax, dword [eax + 0x200]
lea edi, [esi + 0x3178]
push eax
mov ecx, edi
call fcn.10043b30
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x204]
push edx
mov ecx, edi
call fcn.10043b40
mov eax, dword [esi + 0xc]
cmp byte [eax + 0x208], 0
sete cl
push ecx
mov ecx, edi
call fcn.10043b60
mov edx, dword [esi + 0xc]
mov eax, dword [edx + 0x20c]
push eax
mov ecx, edi
call fcn.10043b50
mov ecx, dword [esi + 0xc]
cmp byte [ecx + 0x210], 0
mov ecx, edi
sete dl
push edx
call fcn.10043b90
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x214]
push ecx
mov ecx, edi
call fcn.10043b80
mov edx, dword [esi + 0xc]
cmp byte [edx + 0x218], 0
mov ecx, edi
sete al
push eax
call fcn.10043bb0
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x21c]
push edx
mov ecx, edi
call fcn.10043ba0
mov eax, dword [esi + 0xc]
cmp byte [eax + 0x220], 0
sete cl
push ecx
mov ecx, edi
call fcn.10043bd0
mov edx, dword [esi + 0xc]
mov eax, dword [edx + 0x224]
push eax
mov ecx, edi
call fcn.10043bc0
mov ecx, dword [esi + 0xc]
cmp byte [ecx + 0x228], 0
mov ecx, edi
sete dl
push edx
call fcn.10043c00
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x22c]
push ecx
mov ecx, edi
call fcn.10043bf0
mov edx, dword [esi + 0xc]
movzx eax, byte [edx + 0x230]
push eax
mov ecx, edi
call fcn.10043b70
mov eax, dword [esi + 0x272c]
test eax, eax
je 0x1009c9b3
movzx ecx, byte [eax + 0x15b0]
lea edi, [esi + 0x3178]
push ecx
mov ecx, edi
call fcn.10043ae0
mov edx, dword [esi + 0x272c]
mov eax, dword [edx + 0x15b4]
push eax
mov ecx, edi
call fcn.10043af0
mov ecx, dword [esi + 0x272c]
movzx edx, byte [ecx + 0x15b8]
push edx
mov ecx, edi
call fcn.10043b00
mov eax, dword [esi + 0x272c]
mov ecx, dword [eax + 0x15bc]
push ecx
mov ecx, edi
call fcn.10043b10
sub esp, 0x1c
mov edx, esp
mov dword [esp + 0x74], esp
push edx
mov ecx, esi
call fcn.1008d1e0
lea ecx, [esi + 0x3178]
mov dword [esp + 0x70], ecx
call fcn.10044810
mov ecx, esi
call fcn.1008b410
mov ecx, dword [esi + 0x2730]
mov edi, eax
mov ebp, edx
call fcn.1013439f
mov ecx, dword [esi + 0x2730]
mov ebx, eax
mov dword [esp + 0x84], edx
call fcn.1013424b
mov ecx, dword [esi + 0x3348]
and ecx, dword [esi + 0x334c]
cmp ecx, 0xffffffff
jne 0x1009ca1a
mov dword [esi + 0x3348], edi
mov dword [esi + 0x334c], ebp
sub edi, dword [esi + 0x3348]
sbb ebp, dword [esi + 0x334c]
mov ecx, edi
mov edi, dword [esp + 0x84]
mov dword [esp + 0x6c], ecx
mov esi, ebp
sub ecx, eax
mov dword [esp + 0x70], esi
sbb esi, edx
sub ecx, ebx
sbb esi, edi
test esi, esi
jg 0x1009ca59
jl 0x1009ca4f
cmp ecx, 0x100000
jae 0x1009ca59
test esi, esi
jg 0x1009ca69
jl 0x1009ca59
test ecx, ecx
ja 0x1009ca69
add eax, ebx
adc edx, edi
mov dword [esp + 0x18], eax
or eax, edx
mov dword [esp + 0x1c], edx
jne 0x1009ca6d
fldz
jmp 0x1009ca7b
fild qword [esp + 0x6c]
fild qword [esp + 0x18]
fdivp st(1)
fld1
fsubrp st(1)
mov ecx, dword [esp + 0x54]
sub esp, 8
fstp qword [esp]
call fcn.10043be0
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x18c]
push edx
call fcn.1008dbd0
jmp 0x1009caa7
movzx eax, word [esi + 0x2548]
mov dword [edi + 0xc], eax
lea ecx, [esp + 0x74]
call fcn.10039fc0
mov ecx, dword [esp + 0x78]
push ecx
call fcn.10157f3b
mov eax, dword [esp + 0x4c]
add esp, 4
test eax, eax
mov dword [esp + 0x78], 0
je 0x1009caef
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x48]
push ecx
push edx
push eax
call fcn.100397f0
mov eax, dword [esp + 0x58]
push eax
call fcn.10157f3b
add esp, 0x14
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x16c
ret 0x20