Function at 0x454910
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
mov ebx, ecx
cmp word [ebx + 0x14], 0x1000
push esi
push edi
jne 0x454575
test byte [ebx + 0x16], 1
je 0x454575
mov esi, dword [0x67ccc8]
call sub.winmm.dll_timeGetTime
sub eax, esi
test eax, eax
jle 0x454575
xor eax, eax
mov ax, word [ebx + 0x16]
test al, 1
je 0x454930
and eax, 0xfffffffe
mov word [ebx + 0x16], ax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
movsx ecx, word [ebx + 0x1e]
movsx edx, word [ebx + 0x1c]
mov eax, dword [ebx + 4]
mov esi, dword [eax + 0x1c]
mov edi, dword [eax + 0x18]
push ecx
movsx ecx, word [ebx + 0x1a]
push edx
movsx edx, word [ebx + 0x18]
add ecx, esi
push ecx
mov ecx, dword [0x67d8ac]
add edx, edi
push edx
call fcn.005f0150
mov eax, dword [ebp + 8]
mov dword [eax], 0x200
movsx ecx, word [ebx + 0x10]
mov dword [eax + 8], ecx
cmp byte [ebx + 0x40], 1
jne 0x45454d
mov dword [eax + 4], 0xa
jmp 0x454554
mov dword [eax + 4], 0xd
mov edx, dword [0x6794e8]
pop edi
mov dword [eax + 0xc], edx
pop esi
mov dword [0x6794e8], 0
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret 4
xor eax, eax
mov ax, word [ebx + 0x16]
test al, 2
je 0x454ace
mov ecx, eax
and ecx, 0x2000
test cx, cx
jne 0x454ace
xor dl, dl
test al, 0x20
je 0x45459c
mov dl, 1
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
cmp ecx, 0x10
jg 0x454917
je 0x4548fe
dec ecx
je 0x4548b6
dec ecx
je 0x4547ed
sub ecx, 6
jne 0x454928
test dl, dl
jne 0x454930
test al, 4
je 0x454a41
mov edi, dword [ebx + 4]
mov cx, word [esi + 4]
mov dx, word [esi + 8]
sub cx, word [edi + 0x18]
sub dx, word [edi + 0x1c]
test al, 8
jne 0x454930
mov ax, word [ebx + 0x18]
cmp cx, ax
jl 0x454930
cmp dx, word [ebx + 0x1a]
jl 0x454930
movsx edi, word [ebx + 0x1c]
movsx eax, ax
movsx ecx, cx
add eax, edi
cmp ecx, eax
jge 0x454930
movsx eax, word [ebx + 0x1a]
movsx ecx, word [ebx + 0x1e]
movsx edx, dx
add eax, ecx
cmp edx, eax
jge 0x454930
push esi
mov ecx, ebx
call fcn.00454b10
mov eax, dword [esi]
cmp eax, 0x10
je 0x454765
cmp eax, 0x40
je 0x454765
mov ecx, dword [0x67d8a8]
mov eax, dword [ecx]
push esi
call dword [eax + 8]
cmp dword [esi], 4
jne 0x454730
mov edx, dword [ebx + 4]
mov ax, word [esi + 4]
mov cx, word [esi + 8]
sub ax, word [edx + 0x18]
sub cx, word [edx + 0x1c]
mov dx, word [ebx + 0x18]
cmp ax, dx
jl 0x4546ba
cmp cx, word [ebx + 0x1a]
jl 0x4546ba
movsx edi, word [ebx + 0x1c]
movsx edx, dx
movsx eax, ax
add edx, edi
cmp eax, edx
jge 0x4546ba
movsx edx, word [ebx + 0x1a]
movsx eax, word [ebx + 0x1e]
movsx ecx, cx
add edx, eax
cmp ecx, edx
jge 0x4546ba
test byte [ebx + 0x16], 1
jne 0x454730
push esi
mov ecx, ebx
call fcn.00454b10
jmp 0x454730
xor eax, eax
mov ax, word [ebx + 0x16]
test al, 1
je 0x454730
mov edx, dword [ebx]
and eax, 0xfffffffe
mov ecx, ebx
mov word [ebx + 0x16], ax
call dword [edx + 0x10]
movsx ecx, word [ebx + 0x1e]
movsx edx, word [ebx + 0x1c]
mov eax, dword [ebx + 4]
push ecx
movsx ecx, word [ebx + 0x1a]
push edx
mov edx, dword [eax + 0x1c]
add edx, ecx
movsx ecx, word [ebx + 0x18]
push edx
mov edx, dword [eax + 0x18]
add edx, ecx
mov ecx, dword [0x67d8ac]
push edx
call fcn.005f0150
mov dword [esi], 0x200
movsx eax, word [ebx + 0x10]
mov dword [esi + 8], eax
mov cl, byte [ebx + 0x40]
dec cl
neg cl
sbb ecx, ecx
and ecx, 3
add ecx, 0xa
mov dword [esi + 4], ecx
mov edx, dword [0x6794e8]
mov dword [esi + 0xc], edx
mov dword [0x6794e8], 0
call fcn.004ebb10
call fcn.004e1240
mov ecx, dword [0x67d89c]
lea eax, [ebp - 0x20]
push eax
call fcn.004e04c0
mov edi, dword [ebp + 8]
mov esi, eax
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
cmp eax, 0x10
mov esi, ecx
jne 0x454645
xor eax, eax
mov ax, word [ebx + 0x16]
test al, 1
je 0x454a2f
mov edx, dword [ebx]
and eax, 0xfffffffe
mov ecx, ebx
mov word [ebx + 0x16], ax
call dword [edx + 0x10]
movsx ecx, word [ebx + 0x1e]
movsx edx, word [ebx + 0x1c]
mov eax, dword [ebx + 4]
push ecx
movsx ecx, word [ebx + 0x1a]
push edx
mov edx, dword [eax + 0x1c]
add edx, ecx
movsx ecx, word [ebx + 0x18]
push edx
mov edx, dword [eax + 0x18]
add edx, ecx
mov ecx, dword [0x67d8ac]
push edx
call fcn.005f0150
mov dword [esi], 0x200
movsx eax, word [ebx + 0x10]
mov dword [esi + 8], eax
mov cl, byte [ebx + 0x40]
dec cl
neg cl
pop edi
mov eax, 2
sbb ecx, ecx
and ecx, 3
add ecx, 0xa
mov dword [esi + 4], ecx
mov edx, dword [0x6794e8]
mov dword [esi + 0xc], edx
pop esi
mov dword [0x6794e8], 0
pop ebx
mov esp, ebp
pop ebp
ret 4
test dl, dl
jne 0x454930
test al, 4
je 0x454a41
test al, 8
jne 0x454a41
mov edx, dword [ebx + 0x48]
xor ecx, ecx
test edx, edx
je 0x454930
mov edi, dword [ebx + 0x4c]
sub edi, edx
sar edi, 2
cmp ecx, edi
jae 0x454930
mov edi, dword [ebx + 0x48]
mov edi, dword [edi + ecx*4]
cmp edi, dword [esi + 4]
je 0x454830
inc ecx
jmp 0x45480a
test al, 1
je 0x454930
and eax, 0xfffffffe
mov word [ebx + 0x16], ax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
movsx ecx, word [ebx + 0x1e]
movsx edx, word [ebx + 0x1c]
mov eax, dword [ebx + 4]
mov edi, dword [eax + 0x1c]
push ecx
movsx ecx, word [ebx + 0x1a]
push edx
movsx edx, word [ebx + 0x18]
add ecx, edi
mov edi, dword [eax + 0x18]
push ecx
mov ecx, dword [0x67d8ac]
add edx, edi
push edx
call fcn.005f0150
mov dword [esi], 0x200
movsx eax, word [ebx + 0x10]
mov dword [esi + 8], eax
cmp byte [ebx + 0x40], 1
jne 0x45488e
mov dword [esi + 4], 0xa
jmp 0x454895
mov dword [esi + 4], 0xd
mov ecx, dword [0x6794e8]
pop edi
mov dword [esi + 0xc], ecx
pop esi
mov dword [0x6794e8], 0
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret 4
test dl, dl
jne 0x454930
test al, 4
je 0x454a41
test al, 8
jne 0x454a41
mov ecx, dword [ebx + 0x48]
xor eax, eax
test ecx, ecx
je 0x454930
mov edx, dword [ebx + 0x4c]
sub edx, ecx
sar edx, 2
cmp eax, edx
jae 0x454930
mov edx, dword [ebx + 0x48]
mov edx, dword [edx + eax*4]
cmp edx, dword [esi + 4]
je 0x4548ed
inc eax
jmp 0x4548cf
push esi
mov ecx, ebx
call fcn.00454b10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test dl, dl
jne 0x454930
test al, 4
je 0x454a41
test al, 1
je 0x454a41
jmp 0x454838
cmp ecx, 0x20
je 0x454a3d
cmp ecx, 0x200
je 0x45493b
test dl, dl
je 0x454a41
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4
movsx edx, word [ebx + 0x10]
cmp dword [esi + 8], edx
jne 0x454a41
mov eax, dword [esi + 4]
add eax, 0xfffffffd
cmp eax, 0xa
ja 0x454a41
xor ecx, ecx
mov cl, byte [eax + 0x454704]
jmp dword [ecx*4 + 0x4546f0]
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 4
test al, 4
jne 0x454a52
push esi
mov ecx, ebx
call fcn.005ebd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 4]
mov ax, word [esi + 4]
mov cx, word [esi + 8]
sub ax, word [edx + 0x18]
sub cx, word [edx + 0x1c]
mov dx, word [ebx + 0x18]
cmp ax, dx
jl 0x454930
cmp cx, word [ebx + 0x1a]
jl 0x454930
movsx edi, word [ebx + 0x1c]
movsx edx, dx
movsx eax, ax
add edi, edx
cmp eax, edi
jge 0x454930
movsx edx, word [ebx + 0x1e]
movsx eax, word [ebx + 0x1a]
movsx ecx, cx
add edx, eax
cmp ecx, edx
jge 0x454930
mov dword [esi], 0x200
mov dword [esi + 4], 0xe
movsx edx, word [ebx + 0x10]
pop edi
mov dword [esi + 8], edx
mov dword [esi + 0xc], 0x200
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp + 8]
cmp dword [eax], 0x200
jne 0x454930
push eax
mov ecx, ebx
call fcn.005ebd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4