Function at 0x45f380f2
Capabilities:
Access peb ldr_data

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45fb5c72
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x46039020]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov edi, dword [0x4603ba74]
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
mov eax, dword [edi + 0xc]
mov ecx, eax
imul eax, dword [ebp + 0xc]
imul ecx, dword [ebp + 8]
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x64]
xor esi, esi
add ecx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], eax
cmp eax, esi
jbe 0x45f38404
test esi, esi
jne 0x45f38404
push dword [esp + 0x1c]
lea ecx, [edi + 0x5c]
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [0x4603911c]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
call fcn.45f8f4fd
and dword [esp + 0x50], esi
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
mov esi, eax
mov ecx, dword [esi]
mov eax, dword [esi + 4]
sub eax, ecx
push 0x30
cdq
pop ebx
idiv ebx
and dword [esp + 0x18], 0
test eax, eax
jbe 0x45f381dd
and dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
add ecx, eax
push dword [ecx + 0x18]
lea eax, [esp + 0x28]
push eax
call fcn.45e26e38
test eax, eax
je 0x45f381dd
mov ecx, dword [esi]
mov eax, dword [esi + 4]
sub eax, ecx
push 0x30
cdq
pop ebx
idiv ebx
inc dword [esp + 0x18]
add dword [esp + 0x20], 0x30
cmp dword [esp + 0x18], eax
jb 0x45f381aa
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebp + 8]
mov eax, dword [edi]
inc ebx
inc ecx
push ebx
push ecx
mov ecx, edi
call dword [eax + 0x28]
mov ecx, dword [ebp + 0xc]
inc ecx
push ebx
mov byte [esp + 0x1b], al
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x28]
cmp byte [esp + 0x17], 0
jne 0x45f383ba
test al, al
jne 0x45f383c5
mov edx, dword [esp + 0x18]
mov esi, dword [esi]
imul edx, edx, 0x30
mov eax, dword [edx + esi + 0x28]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
add edx, esi
movzx edx, word [edx + 0x24]
add ecx, eax
add eax, ebx
cmp edx, 0x12
jg 0x45f38327
je 0x45f38304
dec edx
dec edx
je 0x45f382de
dec edx
je 0x45f382c0
dec edx
dec edx
je 0x45f38292
dec edx
dec edx
je 0x45f38292
sub edx, 4
jne 0x45f3827a
movzx ecx, word [ecx]
movzx eax, word [eax]
test cx, cx
sete dl
dec edx
mov cx, dx
xor edx, edx
test ax, ax
sete dl
dec edx
mov ax, dx
cmp cx, ax
jne 0x45f38281
xor esi, esi
jmp 0x45f383df
xor eax, eax
test cx, cx
setne al
lea eax, [eax + eax - 1]
jmp 0x45f38349
fld qword [ecx]
fld qword [eax]
fld st(0)
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x45f382a7
fstp st(1)
fstp st(0)
jmp 0x45f3827a
fcompp
fnstsw ax
test ah, 5
jp 0x45f382b8
xor esi, esi
inc esi
jmp 0x45f383cc
or esi, 0xffffffff
jmp 0x45f383cc
mov ecx, dword [ecx]
mov eax, dword [eax]
xor edx, edx
mov esi, ecx
sub esi, eax
cmp ecx, eax
setg dl
neg esi
sbb esi, esi
lea edx, [edx + edx - 1]
and esi, edx
jmp 0x45f383c8
movzx ecx, word [ecx]
movzx eax, word [eax]
xor ebx, ebx
mov dx, cx
sub dx, ax
cmp cx, ax
setg bl
movsx esi, dx
neg esi
sbb esi, esi
lea ebx, [ebx + ebx - 1]
and esi, ebx
jmp 0x45f383c8
movzx ecx, word [ecx]
movzx eax, word [eax]
mov dx, cx
sub dx, ax
cmp ax, cx
movzx esi, dx
sbb eax, eax
and eax, 2
dec eax
neg esi
sbb esi, esi
and esi, eax
jmp 0x45f383c8
sub edx, 0x13
je 0x45f383ab
dec edx
dec edx
je 0x45f38379
sub edx, 0x2b
je 0x45f3834d
sub edx, 0x4042
jne 0x45f3827a
push dword [eax]
push ecx
call fcn.45e26e38
mov esi, eax
jmp 0x45f383c8
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
jmp 0x45f38349
mov edx, dword [ecx]
mov esi, dword [eax]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 4]
cmp edx, esi
jne 0x45f38390
cmp ecx, eax
jne 0x45f38392
jmp 0x45f3827a
cmp ecx, eax
jb 0x45f382b8
ja 0x45f382b0
cmp edx, esi
jbe 0x45f382b8
jmp 0x45f382b0
mov ecx, dword [ecx]
mov eax, dword [eax]
mov esi, ecx
sub esi, eax
cmp eax, ecx
jmp 0x45f38316
xor esi, esi
test al, al
jne 0x45f383df
jmp 0x45f382b2
or esi, 0xffffffff
test esi, esi
je 0x45f383df
push dword [esp + 0x1c]
lea ecx, [edi + 0x5c]
mov eax, dword [ecx]
call dword [eax]
cmp byte [eax + 4], 0
jne 0x45f383df
neg esi
or dword [esp + 0x50], 0xffffffff
mov eax, dword [esp + 0x24]
add eax, 0xfffffff4
push eax
call fcn.45f8f362
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
pop ecx
cmp eax, dword [esp + 0x30]
jb 0x45f38159
mov eax, esi
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8