Function at 0x407590
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x46833b
mov eax, dword fs:[0]
push eax
sub esp, 0x120
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48b270]
xor eax, esp
push eax
lea eax, [esp + 0x134]
mov dword fs:[0], eax
mov esi, ecx
push 1
lea eax, [esi + 0x1c]
push eax
lea ecx, [esp + 0x30]
call fcn.00437500
mov ebx, dword [esi + 0xc]
xor ebp, ebp
mov dword [esp + 0x13c], ebp
mov dword [esp + 0x14], ebx
cmp ebx, ebp
je 0x40774d
xor edi, edi
cmp ebx, ebp
jle 0x407615
lea esp, [esp]
cmp edi, ebp
jl 0x4077b2
cmp edi, dword [esi + 0xc]
jge 0x4077b2
mov ecx, dword [esi + 8]
lea eax, [ecx + edi*4]
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
inc edi
cmp edi, ebx
jl 0x4075f0
xor edi, edi
cmp ebx, ebp
jle 0x407666
jmp 0x407620
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
call eax
test eax, eax
je 0x40764e
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], edi
mov ecx, dword [esi + 0x18]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
push 1
push 0xffffffffffffffff
lea eax, [esp + 0x20]
push eax
call edx
inc edi
cmp edi, ebx
jl 0x407620
mov edi, ebx
sub edi, ebp
cmp edi, 0x40
jle 0x407674
mov edi, 0x40
xor ecx, ecx
test edi, edi
jle 0x4076b2
mov ebx, ebp
lea edx, [ebp*4]
test ebx, ebx
jl 0x4077b2
cmp ebx, dword [esi + 0xc]
jge 0x4077b2
mov eax, dword [esi + 8]
add eax, edx
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [esp + ecx*4 + 0x34], eax
inc ecx
inc ebx
add edx, 4
cmp ecx, edi
jl 0x407683
mov ebx, dword [esp + 0x14]
push 0xffffffffffffffff
push 1
lea ecx, [esp + 0x3c]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
add ebp, edi
xor eax, eax
cmp ebp, ebx
setl al
test eax, eax
jne 0x407666
xor ebp, ebp
xor ebx, ebx
cmp dword [esp + 0x14], ebp
jle 0x40771f
lea esp, [esp]
cmp ebx, ebp
jl 0x4077b2
cmp ebx, dword [esi + 0xc]
jge 0x4077b2
mov edx, dword [esi + 8]
mov edi, dword [edx + ebx*4]
mov ecx, dword [edi + 4]
lea eax, [edx + ebx*4]
cmp ecx, ebp
je 0x40770a
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [edi + 4], ebp
mov eax, dword [edi]
mov edx, dword [eax + 4]
push 1
mov ecx, edi
call edx
inc ebx
cmp ebx, dword [esp + 0x14]
jl 0x4076e0
mov eax, dword [esi + 8]
cmp eax, ebp
je 0x407732
push eax
call fcn.004318cb
add esp, 4
mov dword [esi + 8], ebp
mov dword [esi + 0x10], ebp
mov dword [esi + 0xc], ebp
mov ecx, dword [esi + 0x18]
cmp ecx, ebp
je 0x407748
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [esi + 0x18], ebp
xor ebp, ebp
cmp dword [esi + 0x44], ebp
je 0x40777e
mov eax, dword [esi + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [esi + 0x44]
mov edx, dword [ecx + 0x2c]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esi + 0x44]
cmp ecx, ebp
je 0x40777b
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [esi + 0x44], ebp
lea ecx, [esp + 0x28]
mov dword [esi + 0x3c], ebp
mov dword [esi + 0x40], ebp
mov dword [esp + 0x13c], 0xffffffff
call fcn.004374af
mov ecx, dword [esp + 0x134]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret
call fcn.00431a0d
int3