Function at 0x1001d470
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
mov eax, dword [0x1018d0d0]
xor eax, esp
mov dword [esp + 0x90], eax
push ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x10], esi
call fcn.10035af0
mov ecx, eax
call fcn.10035a70
mov eax, dword [esp + 0x10]
mov esi, dword [esi + 0x188]
cmp esi, dword [eax + 0x18c]
je 0x1001d887
push 1
push 0x1017953c
lea ecx, [esp + 0x40]
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], 0
mov byte [esp + 0x40], 0
call fcn.10002130
lea eax, [esp + 0x38]
push eax
push esi
lea ecx, [esp + 0x58]
call fcn.10020a30
cmp dword [esp + 0x4c], 0x10
jb 0x1001d4fc
push dword [esp + 0x38]
call fcn.1011a1ea
add esp, 4
cmp dword [esp + 0x88], 0
jne 0x1001d51b
cmp dword [esp + 0x90], 0
jne 0x1001d51b
lea ecx, [esp + 0x50]
call fcn.10021250
jmp 0x1001d524
lea ecx, [esp + 0x50]
call fcn.100212e0
test al, al
je 0x1001d830
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], 0
mov byte [esp + 0x38], 0
cmp ecx, eax
je 0x1001d565
sub eax, ecx
push eax
push ecx
lea ecx, [esp + 0x40]
call fcn.10002130
cmp dword [esp + 0x4c], 0x10
mov edi, dword [esp + 0x38]
jae 0x1001d569
lea edi, [esp + 0x38]
call fcn.10035af0
push edi
mov ecx, eax
call fcn.10035890
cmp dword [esp + 0x4c], 0x10
mov ebx, eax
mov dword [esp + 0xc], ebx
jb 0x1001d58f
push dword [esp + 0x38]
call fcn.1011a1ea
add esp, 4
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], 0
mov byte [esp + 0x38], 0
cmp dword [esp + 0x88], 0
jne 0x1001d5c3
cmp dword [esp + 0x90], 0
jne 0x1001d5c3
lea ecx, [esp + 0x50]
call fcn.10021250
jmp 0x1001d5cc
lea ecx, [esp + 0x50]
call fcn.100212e0
test al, al
je 0x1001d830
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
cmp ecx, eax
je 0x1001d60d
sub eax, ecx
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.10002130
cmp dword [esp + 0x34], 0x10
mov eax, dword [esp + 0x20]
jae 0x1001d611
lea eax, [esp + 0x20]
lea ecx, [esp + 0x14]
push ecx
push eax
call fcn.10124d08
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x28]
mov edi, dword [esp + 0x28]
add esp, 8
cmp ecx, 0x10
fstp qword [esp + 0x18]
cmovae eax, edi
cmp dword [esp + 0x14], eax
je 0x1001d68a
movsd xmm0, qword [esp + 0x18]
mulsd xmm0, qword [0x1017a1c8]
call fcn.10144bbf
mov ebx, eax
mov edi, edx
cmp ebx, 0xffffffff
jne 0x1001d661
cmp edi, 0x7fffffff
jne 0x1001d661
or ebx, eax
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0xc]
mov dword [eax + 0x48], ebx
mov ebx, eax
mov dword [ebx + 0x4c], edi
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x34], 0
jmp 0x1001d80d
cmp ecx, 0x10
lea edx, [esp + 0x20]
mov ecx, 6
cmovae edx, edi
mov edi, dword [esp + 0x30]
cmp edi, ecx
cmovb ecx, edi
test ecx, ecx
je 0x1001d704
mov edi, str.static
sub ecx, 4
jb 0x1001d6c1
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x1001d6c6
add edx, 4
add edi, 4
sub ecx, 4
jae 0x1001d6b0
cmp ecx, 0xfffffffc
je 0x1001d6fa
mov al, byte [edx]
cmp al, byte [edi]
jne 0x1001d6f3
cmp ecx, 0xfffffffd
je 0x1001d6fa
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x1001d6f3
cmp ecx, 0xfffffffe
je 0x1001d6fa
mov al, byte [edx + 2]
cmp al, byte [edi + 2]
jne 0x1001d6f3
cmp ecx, 0xffffffff
je 0x1001d6fa
mov al, byte [edx + 3]
cmp al, byte [edi + 3]
je 0x1001d6fa
sbb eax, eax
or eax, 1
jmp 0x1001d6fc
xor eax, eax
mov edi, dword [esp + 0x30]
test eax, eax
jne 0x1001d728
cmp edi, 6
jb 0x1001d728
xor eax, eax
cmp edi, 6
setne al
test eax, eax
jne 0x1001d728
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebx + 0x18], 0
jmp 0x1001d80d
cmp dword [esp + 0x34], 0x10
lea edx, [esp + 0x20]
mov ecx, 7
cmovae edx, dword [esp + 0x20]
cmp edi, ecx
cmovb ecx, edi
test ecx, ecx
je 0x1001d7a4
mov edi, str.oneshot
sub ecx, 4
jb 0x1001d761
mov edi, edi
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x1001d766
add edx, 4
add edi, 4
sub ecx, 4
jae 0x1001d750
cmp ecx, 0xfffffffc
je 0x1001d79a
mov al, byte [edx]
cmp al, byte [edi]
jne 0x1001d793
cmp ecx, 0xfffffffd
je 0x1001d79a
mov al, byte [edx + 1]
cmp al, byte [edi + 1]
jne 0x1001d793
cmp ecx, 0xfffffffe
je 0x1001d79a
mov al, byte [edx + 2]
cmp al, byte [edi + 2]
jne 0x1001d793
cmp ecx, 0xffffffff
je 0x1001d79a
mov al, byte [edx + 3]
cmp al, byte [edi + 3]
je 0x1001d79a
sbb eax, eax
or eax, 1
jmp 0x1001d79c
xor eax, eax
mov edi, dword [esp + 0x30]
test eax, eax
jne 0x1001d7c5
cmp edi, 7
jb 0x1001d7c5
xor eax, eax
cmp edi, 7
setne al
test eax, eax
jne 0x1001d7c5
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebx + 0x18], 1
jmp 0x1001d80d
cmp dword [esp + 0x34], 0x10
lea ecx, [esp + 0x20]
mov eax, 0xb
cmovae ecx, dword [esp + 0x20]
cmp edi, eax
cmovb eax, edi
push eax
push str.alternating
push ecx
call fcn.10005a20
add esp, 0xc
test eax, eax
jne 0x1001d814
cmp edi, 0xb
jb 0x1001d814
cmp edi, 0xb
setne al
test eax, eax
jne 0x1001d814
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebx + 0x18], 2
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [esp + 0x34], 0x10
jb 0x1001d5a4
push dword [esp + 0x20]
call fcn.1011a1ea
add esp, 4
jmp 0x1001d5a4
cmp dword [esp + 0x8c], 0x10
jb 0x1001d846
push dword [esp + 0x78]
call fcn.1011a1ea
add esp, 4
cmp dword [esp + 0x74], 0x10
mov byte [esp + 0x78], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0xf
jb 0x1001d874
push dword [esp + 0x60]
call fcn.1011a1ea
add esp, 4
mov eax, dword [esp + 0x10]
add esi, 0x18
cmp esi, dword [eax + 0x18c]
jne 0x1001d4b5
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1011a3e5
mov esp, ebp
pop ebp
ret