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

Disassembly:
sub esp, 0x24
mov edx, dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x34]
push esi
lea eax, [esp + 0x10]
push edi
push ebp
mov edi, ebx
mov ecx, dword [esp + 0x3c]
push 0
mov esi, dword [esp + 0x3c]
push eax
mov dword [esp + 0x38], edx
push ecx
push esi
call fcn.7f8f3dd0
lea ecx, [esp + 0x10]
push 1
mov eax, dword [esp + 0x40]
push ecx
push eax
push esi
call fcn.7f8f3dd0
test ebx, ebx
jg 0x7f8f448d
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
add eax, ecx
mov edx, dword [esi + 0xe0]
cmp eax, edx
jne 0x7f8f448d
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x7f8f448d
lea ebp, [eax + eax*2]
mov edx, dword [esi + 0x12c]
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + ebp*4]
cmp eax, ecx
jne 0x7f8f448d
mov dword [esp + 0x14], 0
dec dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov edx, dword [esi + 0x118]
lea eax, [ebp + ebp*2]
mov dword [esp + 0x2c], ebp
mov dword [esi + 0x108], ebp
mov ecx, dword [edx + eax*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x10]
sub edx, ecx
mov dword [esi + 0x11c], ebp
mov ecx, dword [esp + 0x1c]
lea ebp, [ebp + ebp*2]
add edx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esi + 0x10c], edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0x12c]
mov ecx, dword [ecx + ebp*4]
mov ebp, dword [esp + 0x24]
sub ebp, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ebp
add ebp, ecx
mov dword [esp + 0x24], ebp
mov dword [esi + 0x120], ebp
test ebx, ebx
jg 0x7f8f465c
mov ecx, dword [esp + 0x44]
test ecx, ecx
jle 0x7f8f483a
mov ecx, dword [esi + 0x110]
test ecx, ecx
jne 0x7f8f4555
mov ax, word [esi + 0x454]
mov ecx, dword [esi + 0x450]
mov edx, dword [esp + 0x44]
push eax
push ecx
push edx
push 0
push esi
call fcn.7f8f48d0
test eax, eax
jne 0x7f8f4543
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x24
ret 0x10
mov eax, dword [esp + 0x44]
mov ecx, dword [esi + 0x12c]
inc eax
mov dword [ecx], eax
jmp 0x7f8f483a
mov edx, dword [esi + 0x450]
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x7f8f4592
mov cx, word [eax + 8]
cmp word [esi + 0x454], cx
jne 0x7f8f4592
mov edx, dword [esp + 0x44]
mov ecx, dword [eax]
add ecx, edx
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x12c]
mov edx, dword [esp + 0x44]
lea ebx, [eax + eax*2]
add dword [ecx + ebx*4], edx
jmp 0x7f8f483a
mov ecx, dword [eax]
mov ebx, dword [esp + 0x1c]
cmp ecx, ebx
jne 0x7f8f45d4
mov ebx, dword [esp + 0x18]
test ebx, ebx
jle 0x7f8f45d4
mov ebx, dword [eax - 8]
cmp ebx, edx
jne 0x7f8f45d4
mov dx, word [esi + 0x454]
cmp word [eax - 4], dx
jne 0x7f8f45d4
mov edx, dword [esp + 0x44]
mov ecx, dword [eax - 0xc]
add ecx, edx
mov dword [eax - 0xc], ecx
mov eax, dword [esi + 0x10c]
add eax, edx
mov dword [esi + 0x10c], eax
jmp 0x7f8f4579
mov edx, dword [esp + 0x1c]
cmp ecx, edx
je 0x7f8f4626
mov ecx, dword [esp + 0x18]
inc ecx
test edx, edx
mov dword [esp + 0x18], ecx
je 0x7f8f4626
mov cx, word [eax + 8]
mov eax, dword [eax + 4]
push ecx
push eax
mov ecx, dword [esp + 0x20]
push edx
push ecx
push esi
call fcn.7f8f48d0
test eax, eax
jne 0x7f8f4611
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x24
ret 0x10
mov eax, dword [esp + 0x18]
mov edx, dword [esi + 0x118]
mov ecx, dword [esp + 0x1c]
lea ebx, [eax + eax*2]
sub dword [edx + ebx*4 - 0xc], ecx
mov ax, word [esi + 0x454]
mov ecx, dword [esi + 0x450]
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
push esi
call fcn.7f8f48d0
test eax, eax
jne 0x7f8f4579
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x24
ret 0x10
mov ecx, ebx
mov ebp, dword [esp + 0x1c]
cmp ecx, ebp
jl 0x7f8f4668
mov ecx, ebp
mov ebp, dword [esp + 0x1c]
cmp dword [eax], ebp
jne 0x7f8f4696
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x18]
jne 0x7f8f4696
mov ebp, dword [esp + 0x18]
test ebp, ebp
jle 0x7f8f4696
sub edx, dword [eax - 0xc]
mov dword [esi + 0x10c], edx
mov edx, dword [esp + 0x2c]
dec edx
mov dword [esi + 0x108], edx
mov ebp, dword [eax]
mov edx, dword [esp + 0x44]
add edx, ebp
mov ebp, 0
mov dword [eax], edx
sub edx, ecx
mov dword [eax], edx
test edx, edx
jg 0x7f8f46bc
mov ebp, 1
mov edx, dword [esp + 0x18]
add edx, ebp
mov dword [esp + 0x18], edx
add eax, 0xc
sub ebx, ecx
test ebx, ebx
jle 0x7f8f46d5
mov ecx, dword [eax]
cmp ebx, ecx
jl 0x7f8f46d5
inc ebp
add eax, 0xc
sub ebx, ecx
test ebx, ebx
jg 0x7f8f46c5
test ebp, ebp
jle 0x7f8f4707
mov ecx, dword [esi + 0x118]
push ebp
sub eax, ecx
mov ecx, 0xc
cdq
idiv ecx
sub eax, ebp
mov dword [esp + 0x1c], eax
push eax
push esi
call fcn.7f8f49b0
mov ecx, dword [esp + 0x18]
mov edx, dword [esi + 0x118]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*4]
test ebx, ebx
jle 0x7f8f470d
sub dword [eax], ebx
mov eax, dword [esp + 0x18]
push 0
inc eax
push eax
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.7f8f6630
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 0x12c]
mov ecx, dword [esp + 0x14]
lea ebx, [ebx + ebx*2]
mov edx, dword [eax + ebx*4]
lea ebx, [eax + ebx*4]
cmp edx, ecx
jne 0x7f8f4765
mov eax, dword [esi + 0x11c]
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jne 0x7f8f4765
test ecx, ecx
jle 0x7f8f4765
mov ecx, dword [ebx - 0xc]
mov edx, dword [esi + 0x120]
sub edx, ecx
dec eax
mov dword [esi + 0x120], edx
mov dword [esi + 0x11c], eax
lea eax, [esp + 0x20]
push 0
mov ecx, dword [esp + 0x40]
push eax
push 0
push ecx
push esi
call fcn.7f904830
cmp edi, dword [esp + 0x14]
jl 0x7f8f4809
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
sub eax, ecx
mov ebp, dword [esp + 0x3c]
add eax, ebp
sub edi, ecx
add edi, ebp
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], ecx
mov eax, ebp
sub eax, ecx
add edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [ebx]
cmp eax, edx
jle 0x7f8f47cf
sub eax, edx
mov dword [ebx], eax
add ebx, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
sub edi, ecx
inc edx
mov dword [esp + 0x10], edx
mov eax, dword [ebx]
mov dword [esp + 0x14], eax
xor ecx, ecx
test edi, edi
jle 0x7f8f47e5
mov eax, dword [ebx]
cmp edi, eax
jl 0x7f8f47e5
inc ecx
sub edi, eax
add ebx, 0xc
test edi, edi
jg 0x7f8f47d5
test ecx, ecx
jle 0x7f8f4805
mov eax, dword [esp + 0x10]
push ecx
push eax
push esi
call fcn.7f8f4bb0
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 0x12c]
lea ebx, [ebx + ebx*2]
lea ebx, [eax + ebx*4]
test edi, edi
jle 0x7f8f480b
sub dword [ebx], edi
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x7f8f4827
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x12c]
mov edx, dword [esp + 0x30]
lea ebx, [eax + eax*2]
add dword [ecx + ebx*4], edx
mov eax, dword [esp + 0x10]
push 1
inc eax
push eax
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.7f8f6630
mov eax, dword [esi + 0xe0]
cmp eax, 2
jne 0x7f8f48b6
mov eax, dword [esi + 0x78]
test al, 2
je 0x7f8f48b6
test al, 4
jne 0x7f8f48b6
mov eax, dword [0x7f91f01c]
mov ecx, dword [esi + 0x130]
shl ecx, 2
mov ebp, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [eax + 8]
lea edx, [ecx + ecx*2]
lea ebx, [edx + edx*4]
add eax, ebx
push eax
call ebp
mov ecx, dword [esi + 0x118]
mov eax, dword [ecx + 4]
push eax
push esi
call fcn.7f8f4a90
mov edx, dword [esi + 0x130]
mov ecx, dword [esi + 0x118]
mov dword [ecx + 4], edx
mov eax, dword [esi + 0x124]
cmp eax, 2
jne 0x7f8f48b6
mov eax, dword [esi + 0x12c]
push 1
push 0
push esi
mov edi, dword [eax]
call fcn.7f8f4bb0
mov ecx, dword [esi + 0x12c]
add dword [ecx], edi
mov eax, dword [esp + 0x3c]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x24
ret 0x10