Function at 0x8e3c30
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x74cab0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebp
push esi
mov dword [esp + 0x10], 0
fld qword [esp + 0x30]
push edi
call 0xb462f0
mov esi, eax
call 0xbe1321
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], 0
call 0xbe1321
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0xc], eax
mov byte [esp + 0x28], 1
call 0xbe1321
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x34], eax
mov byte [esp + 0x28], 2
call 0xbe1321
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov eax, 0x91a2b3c5
imul esi
add edx, esi
sar edx, 0xb
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, edi
imul eax, eax, 0xfffff1f0
add esi, eax
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 5
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov ecx, ebp
imul ecx, ecx, 0x3c
sub esi, ecx
test edi, edi
mov byte [esp + 0x28], 3
je 0x8e3d11
push edi
lea edx, [esp + 0x14]
push 0x785e9c
push edx
call fcn.008cd3b0
add esp, 0xc
jmp 0x8e3d21
push 0
push 0x77caf0
lea ecx, [esp + 0x18]
call fcn.008b7680
test ebp, ebp
je 0x8e3d58
test edi, edi
je 0x8e3d43
cmp ebp, 9
jg 0x8e3d43
push ebp
lea eax, [esp + 0x10]
push 0x785e94
push eax
call fcn.008cd3b0
add esp, 0xc
jmp 0x8e3d75
push ebp
lea ecx, [esp + 0x10]
push 0x785e9c
push ecx
call fcn.008cd3b0
add esp, 0xc
jmp 0x8e3d75
test edi, edi
lea ecx, [esp + 0xc]
je 0x8e3d69
push 3
push 0x785e90
jmp 0x8e3d70
push 2
push 0x785e8c
call fcn.008b7680
test esi, esi
je 0x8e3da7
cmp esi, 9
push esi
jle 0x8e3d93
lea edx, [esp + 0x38]
push 0x784ec4
push edx
call fcn.008cd3b0
add esp, 0xc
jmp 0x8e3dcf
lea eax, [esp + 0x38]
push 0x785e88
push eax
call fcn.008cd3b0
add esp, 0xc
jmp 0x8e3dcf
test edi, edi
jne 0x8e3dbf
test ebp, ebp
jne 0x8e3dbf
push 0x785e84
lea ecx, [esp + 0x38]
call fcn.008b7ec0
jmp 0x8e3dcf
push 2
push 0x785e84
lea ecx, [esp + 0x3c]
call fcn.008b7680
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x24]
push eax
call fcn.008e37e0
lea ecx, [esp + 0x40]
push ecx
push eax
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x40], 4
call fcn.008e37e0
add esp, 0x18
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x2c], 5
call fcn.008cd170
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x28], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x8e3e2d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x28], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x8e3e50
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov esi, dword [esp + 0x14]
add esi, 0xfffffff0
push esi
call fcn.008b7330
mov edi, dword [esp + 0x34]
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [esp + 0x28], 2
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x8e3e85
mov ecx, dword [esi]
mov edx, dword [ecx]
push esi
call dword [edx + 4]
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x28], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x8e3ea8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov byte [esp + 0x28], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x8e3ecb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x28], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x8e3ef1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x20]
mov eax, edi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x20
ret 0xc