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

Disassembly:
sub esp, 0x14
cmp dword [esp + 0x18], 0
push ebp
push esi
push edi
jne 0x407cf8
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x14
ret 4
lea eax, [ebx + 0x78]
push eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x24]
cmp edi, dword [ebx + 0x28]
jbe 0x407d1b
call fcn.00470dee
mov esi, dword [ebx + 0x18]
mov ebp, edi
mov edi, dword [ebx + 0x28]
cmp dword [ebx + 0x24], edi
jbe 0x407d2d
call fcn.00470dee
mov eax, dword [ebx + 0x18]
test esi, esi
je 0x407d38
cmp esi, eax
je 0x407d3d
call fcn.00470dee
cmp ebp, edi
je 0x407dad
test esi, esi
jne 0x407d87
call fcn.00470dee
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x407d56
call fcn.00470dee
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp]
mov edx, dword [ecx]
push eax
push edx
call fcn.0046ff94
add esp, 8
test eax, eax
je 0x407d8f
test esi, esi
jne 0x407d8b
call fcn.00470dee
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x407d82
call fcn.00470dee
add ebp, 4
jmp 0x407d20
mov eax, dword [esi]
jmp 0x407d4c
mov eax, dword [esi]
jmp 0x407d78
test esi, esi
jne 0x407e4b
call fcn.00470dee
cmp ebp, dword [esi + 0x10]
jb 0x407da6
call fcn.00470dee
mov eax, dword [ebp]
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [esp + 0x10], 0
jne 0x407f42
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x3c]
cmp edi, dword [ebx + 0x40]
jbe 0x407dd7
call fcn.00470dee
mov esi, dword [ebx + 0x30]
mov ebp, edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
mov edi, dword [ebx + 0x40]
cmp dword [ebx + 0x3c], edi
jbe 0x407df1
call fcn.00470dee
mov eax, dword [ebx + 0x30]
test esi, esi
je 0x407dfc
cmp esi, eax
je 0x407e01
call fcn.00470dee
cmp ebp, edi
je 0x407e6f
test esi, esi
jne 0x407e52
call fcn.00470dee
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x407e1a
call fcn.00470dee
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp]
mov eax, dword [edx]
push ecx
push eax
call fcn.0046ff94
add esp, 8
test eax, eax
je 0x407e5a
test esi, esi
jne 0x407e56
call fcn.00470dee
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x407e46
call fcn.00470dee
add ebp, 4
jmp 0x407de4
mov esi, dword [esi]
jmp 0x407d9c
mov eax, dword [esi]
jmp 0x407e10
mov eax, dword [esi]
jmp 0x407e3c
lea esi, [esp + 0x18]
mov dword [esp + 0x1c], ebp
call fcn.0040b910
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
jmp 0x407e73
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [esp + 0x10], 0
jne 0x407f42
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0xc]
cmp edi, dword [ebx + 0x10]
jbe 0x407e9d
call fcn.00470dee
mov esi, dword [ebx]
mov ebp, edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
lea esp, [esp]
mov edi, dword [ebx + 0x10]
cmp dword [ebx + 0xc], edi
jbe 0x407ebd
call fcn.00470dee
mov eax, dword [ebx]
test esi, esi
je 0x407ec7
cmp esi, eax
je 0x407ecc
call fcn.00470dee
cmp ebp, edi
je 0x407f33
test esi, esi
jne 0x407f16
call fcn.00470dee
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x407ee5
call fcn.00470dee
mov edx, dword [esp + 0x24]
mov eax, dword [ebp]
mov ecx, dword [eax]
push edx
push ecx
call fcn.0046ff94
add esp, 8
test eax, eax
je 0x407f1e
test esi, esi
jne 0x407f1a
call fcn.00470dee
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x407f11
call fcn.00470dee
add ebp, 4
jmp 0x407eb0
mov eax, dword [esi]
jmp 0x407edb
mov eax, dword [esi]
jmp 0x407f07
lea esi, [esp + 0x18]
mov dword [esp + 0x1c], ebp
call fcn.0040b910
mov edx, dword [eax]
mov dword [esp + 0x10], edx
jmp 0x407f37
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
add esp, 0x14
ret 4